diff --git a/ghostty/.config/ghostty/config b/ghostty/.config/ghostty/config deleted file mode 100644 index df8de44..0000000 --- a/ghostty/.config/ghostty/config +++ /dev/null @@ -1,12 +0,0 @@ -# font -font-family = "Hack Nerd Font Mono" -font-size = 10 - -# colors -# theme = Everforest Dark - Hard -theme = Guezwhoz -cursor-color = #ffff00 -cursor-text = #000000 -shell-integration-features = no-cursor -cursor-style = block - diff --git a/git/.config/git/config b/git/.config/git/config index 4c2c4b4..07e354c 100644 --- a/git/.config/git/config +++ b/git/.config/git/config @@ -5,7 +5,7 @@ [color] ui = auto [merge] - conflictstyle = zdiff3 + conflictstyle = diff3 [commit] gpgsign = false [credential] diff --git a/niri/.config/i3bar-river/config.toml b/niri/.config/i3bar-river/config.toml deleted file mode 100644 index bc6fcff..0000000 --- a/niri/.config/i3bar-river/config.toml +++ /dev/null @@ -1,19 +0,0 @@ -height = 16 -font = "Hack 10" -command = "i3status-rs" -position = "bottom" -show_tags = true - -# colors -background = "#111111ff" -color = "#dcdcccff" - -tag_bg = "#222222ff" -tag_fg = "#dcdcccff" - -tag_focused_bg = "#ffff00ff" -tag_focused_fg = "#000000ff" -tag_urgent_bg = "#ff0500ff" -tag_urgent_fg = "#ffffffff" - -tags_padding = 10 diff --git a/niri/.config/niri/config.kdl b/niri/.config/niri/config.kdl deleted file mode 100644 index 5355aff..0000000 --- a/niri/.config/niri/config.kdl +++ /dev/null @@ -1,476 +0,0 @@ -// https://github.com/YaLTeR/niri/wiki/Configuration:-Overview - -input { - keyboard { - xkb { - // For example: - layout "us,ru" - options "grp:win_space_toggle,compose:ralt,ctrl:nocaps" - } - } - - // Next sections include libinput settings. - touchpad { - tap - natural-scroll - accel-profile "adaptive" - scroll-method "two-finger" - } - - mouse { - accel-profile "adaptive" - } - - trackpoint { - accel-profile "adaptive" - } -} - -output "eDP-1" { - scale 1 - position x=0 y=0 -} - -// home -output "LG Electronics LG HDR 4K 0x00080CA7" { - scale 1 - position x=-3840 y=-960 -} - -// https://github.com/YaLTeR/niri/wiki/Configuration:-Layout -layout { - gaps 4 - - // When to center a column when changing focus, options are: - // - "never", default behavior, focusing an off-screen column will keep at the left - // or right edge of the screen. - // - "always", the focused column will always be centered. - // - "on-overflow", focusing a column will center it if it doesn't fit - // together with the previously focused column. - center-focused-column "never" - - // You can customize the widths that "switch-preset-column-width" (Mod+R) toggles between. - preset-column-widths { - // Proportion sets the width as a fraction of the output width, taking gaps into account. - // For example, you can perfectly fit four windows sized "proportion 0.25" on an output. - // The default preset widths are 1/3, 1/2 and 2/3 of the output. - proportion 0.33333 - proportion 0.5 - proportion 0.66667 - - // Fixed sets the width in logical pixels exactly. - // fixed 1920 - } - - // You can also customize the heights that "switch-preset-window-height" (Mod+Shift+R) toggles between. - // preset-window-heights { } - - // You can change the default width of the new windows. - default-column-width { proportion 0.5; } - // If you leave the brackets empty, the windows themselves will decide their initial width. - // default-column-width {} - - // By default focus ring and border are rendered as a solid background rectangle - // behind windows. That is, they will show up through semitransparent windows. - // This is because windows using client-side decorations can have an arbitrary shape. - // - // If you don't like that, you should uncomment `prefer-no-csd` below. - // Niri will draw focus ring and border *around* windows that agree to omit their - // client-side decorations. - // - // Alternatively, you can override it with a window rule called - // `draw-border-with-background`. - - // You can change how the focus ring looks. - focus-ring { - // Uncomment this line to disable the focus ring. - // off - - // How many logical pixels the ring extends out from the windows. - width 3 - - // Colors can be set in a variety of ways: - // - CSS named colors: "red" - // - RGB hex: "#rgb", "#rgba", "#rrggbb", "#rrggbbaa" - // - CSS-like notation: "rgb(255, 127, 0)", rgba(), hsl() and a few others. - - // Color of the ring on the active monitor. - active-color "#ffff00" - - // Color of the ring on inactive monitors. - inactive-color "#505050" - - // You can also use gradients. They take precedence over solid colors. - // Gradients are rendered the same as CSS linear-gradient(angle, from, to). - // The angle is the same as in linear-gradient, and is optional, - // defaulting to 180 (top-to-bottom gradient). - // You can use any CSS linear-gradient tool on the web to set these up. - // Changing the color space is also supported, check the wiki for more info. - // - // active-gradient from="#80c8ff" to="#bbddff" angle=45 - - // You can also color the gradient relative to the entire view - // of the workspace, rather than relative to just the window itself. - // To do that, set relative-to="workspace-view". - // - // inactive-gradient from="#505050" to="#808080" angle=45 relative-to="workspace-view" - } - - // You can also add a border. It's similar to the focus ring, but always visible. - border { - // The settings are the same as for the focus ring. - // If you enable the border, you probably want to disable the focus ring. - off - - width 4 - active-color "#ffc87f" - inactive-color "#505050" - - // active-gradient from="#ffbb66" to="#ffc880" angle=45 relative-to="workspace-view" - // inactive-gradient from="#505050" to="#808080" angle=45 relative-to="workspace-view" - } - - // You can enable drop shadows for windows. - shadow { - // Uncomment the next line to enable shadows. - // on - - // By default, the shadow draws only around its window, and not behind it. - // Uncomment this setting to make the shadow draw behind its window. - // - // Note that niri has no way of knowing about the CSD window corner - // radius. It has to assume that windows have square corners, leading to - // shadow artifacts inside the CSD rounded corners. This setting fixes - // those artifacts. - // - // However, instead you may want to set prefer-no-csd and/or - // geometry-corner-radius. Then, niri will know the corner radius and - // draw the shadow correctly, without having to draw it behind the - // window. These will also remove client-side shadows if the window - // draws any. - // - // draw-behind-window true - - // You can change how shadows look. The values below are in logical - // pixels and match the CSS box-shadow properties. - - // Softness controls the shadow blur radius. - softness 30 - - // Spread expands the shadow. - spread 5 - - // Offset moves the shadow relative to the window. - offset x=0 y=5 - - // You can also change the shadow color and opacity. - color "#0007" - } - - // Struts shrink the area occupied by windows, similarly to layer-shell panels. - // You can think of them as a kind of outer gaps. They are set in logical pixels. - // Left and right struts will cause the next window to the side to always be visible. - // Top and bottom struts will simply add outer gaps in addition to the area occupied by - // layer-shell panels and regular gaps. - struts { - // left 64 - // right 64 - // top 64 - // bottom 64 - } -} - -// Add lines like this to spawn processes at startup. -// Note that running niri as a session supports xdg-desktop-autostart, -// which may be more convenient to use. -// See the binds section below for more spawn examples. -// spawn-at-startup "alacritty" "-e" "fish" -spawn-at-startup "alacritty" -spawn-at-startup "i3bar-river" -spawn-at-startup "mako" -spawn-at-startup "swayidle" "-w" "timeout" "300" "~/.lock.sh" "before-sleep" "~/.lock.sh" -spawn-at-startup "swww-daemon" - -// Uncomment this line to ask the clients to omit their client-side decorations if possible. -// If the client will specifically ask for CSD, the request will be honored. -// Additionally, clients will be informed that they are tiled, removing some client-side rounded corners. -// This option will also fix border/focus ring drawing behind some semitransparent windows. -// After enabling or disabling this, you need to restart the apps for this to take effect. -prefer-no-csd - -// You can change the path where screenshots are saved. -// A ~ at the front will be expanded to the home directory. -// The path is formatted with strftime(3) to give you the screenshot date and time. -screenshot-path "~/Pictures/Screenshots/screenshot_%Y-%m-%d_%H-%M-%S.png" - -// You can also set this to null to disable saving screenshots to disk. -// screenshot-path null - -// Animation settings. -// The wiki explains how to configure individual animations: -// https://github.com/YaLTeR/niri/wiki/Configuration:-Animations -animations { - // Uncomment to turn off all animations. - // off - - // Slow down all animations by this factor. Values below 1 speed them up instead. - // slowdown 3.0 -} - -// Window rules let you adjust behavior for individual windows. -// Find more information on the wiki: -// https://github.com/YaLTeR/niri/wiki/Configuration:-Window-Rules - -// Work around WezTerm's initial configure bug -// by setting an empty default-column-width. -window-rule { - // This regular expression is intentionally made as specific as possible, - // since this is the default config, and we want no false positives. - // You can get away with just app-id="wezterm" if you want. - match app-id=r#"^org\.wezfurlong\.wezterm$"# - default-column-width {} -} - -// Open the Firefox picture-in-picture player as floating by default. -window-rule { - // This app-id regular expression will work for both: - // - host Firefox (app-id is "firefox") - // - Flatpak Firefox (app-id is "org.mozilla.firefox") - match app-id=r#"firefox$"# title="^Picture-in-Picture$" - open-floating true -} - -// Example: block out two password managers from screen capture. -// (This example rule is commented out with a "/-" in front.) -window-rule { - match app-id=r#"^org\.keepassxc\.KeePassXC$"# - match app-id=r#"^org\.gnome\.World\.Secrets$"# - - block-out-from "screen-capture" - - // Use this instead if you want them visible on third-party screenshot tools. - // block-out-from "screencast" -} - -// Example: enable rounded corners for all windows. -// (This example rule is commented out with a "/-" in front.) -/-window-rule { - // geometry-corner-radius 12 - // clip-to-geometry true -} - - -binds { - // Keys consist of modifiers separated by + signs, followed by an XKB key name - // in the end. To find an XKB name for a particular key, you may use a program - // like wev. - // - // "Mod" is a special modifier equal to Super when running on a TTY, and to Alt - // when running as a winit window. - // - // Most actions that you can bind here can also be invoked programmatically with - // `niri msg action do-something`. - - // Mod-Shift-/, which is usually the same as Mod-?, - // shows a list of important hotkeys. - Mod+Shift+Slash { show-hotkey-overlay; } - - // Suggested binds for running programs: terminal, app launcher, screen locker. - Mod+T { spawn "alacritty"; } - Mod+D { spawn "fuzzel"; } - Super+Delete { spawn "~/.lock.sh"; } - - // mako - Mod+N { spawn "makoctl" "dismiss"; } - Mod+Shift+N { spawn "makoctl" "restore"; } - - // You can also use a shell. Do this if you need pipes, multiple commands, etc. - // Note: the entire command goes as a single argument in the end. - // Mod+T { spawn "bash" "-c" "notify-send hello && exec alacritty"; } - - // Example volume keys mappings for PipeWire & WirePlumber. - // The allow-when-locked=true property makes them work even when the session is locked. - XF86AudioRaiseVolume allow-when-locked=true { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1+"; } - XF86AudioLowerVolume allow-when-locked=true { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1-"; } - XF86AudioMute allow-when-locked=true { spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle"; } - XF86AudioMicMute allow-when-locked=true { spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SOURCE@" "toggle"; } - XF86MonBrightnessDown allow-when-locked=true { spawn "brightnessctl" "set" "5%-"; } - XF86MonBrightnessUp allow-when-locked=true { spawn "brightnessctl" "set" "+5%"; } - - Mod+Q { close-window; } - - Mod+H { focus-column-left; } - Mod+J { focus-window-down; } - Mod+K { focus-window-up; } - Mod+L { focus-column-right; } - - Mod+Shift+H { move-column-left; } - Mod+Shift+J { move-window-down; } - Mod+Shift+K { move-window-up; } - Mod+Shift+L { move-column-right; } - - // Alternative commands that move across workspaces when reaching - // the first or last window in a column. - // Mod+J { focus-window-or-workspace-down; } - // Mod+K { focus-window-or-workspace-up; } - // Mod+Ctrl+J { move-window-down-or-to-workspace-down; } - // Mod+Ctrl+K { move-window-up-or-to-workspace-up; } - - Mod+Home { focus-column-first; } - Mod+End { focus-column-last; } - Mod+Ctrl+Home { move-column-to-first; } - Mod+Ctrl+End { move-column-to-last; } - - Mod+Left { focus-monitor-left; } - Mod+Down { focus-monitor-down; } - Mod+Up { focus-monitor-up; } - Mod+Right { focus-monitor-right; } - - Mod+Shift+Left { move-column-to-monitor-left; } - Mod+Shift+Down { move-column-to-monitor-down; } - Mod+Shift+Up { move-column-to-monitor-up; } - Mod+Shift+Right { move-column-to-monitor-right; } - - Mod+Alt+Left { move-workspace-to-monitor-left; } - Mod+Alt+Down { move-workspace-to-monitor-down; } - Mod+Alt+Up { move-workspace-to-monitor-up; } - Mod+Alt+Right { move-workspace-to-monitor-right; } - - - Mod+Page_Down { focus-workspace-down; } - Mod+Page_Up { focus-workspace-up; } - Mod+U { focus-workspace-down; } - Mod+I { focus-workspace-up; } - Mod+Shift+Page_Down { move-column-to-workspace-down; } - Mod+Shift+Page_Up { move-column-to-workspace-up; } - Mod+Shift+U { move-column-to-workspace-down; } - Mod+Shift+I { move-column-to-workspace-up; } - - - // You can bind mouse wheel scroll ticks using the following syntax. - // These binds will change direction based on the natural-scroll setting. - // - // To avoid scrolling through workspaces really fast, you can use - // the cooldown-ms property. The bind will be rate-limited to this value. - // You can set a cooldown on any bind, but it's most useful for the wheel. - Mod+WheelScrollDown cooldown-ms=150 { focus-workspace-down; } - Mod+WheelScrollUp cooldown-ms=150 { focus-workspace-up; } - Mod+Ctrl+WheelScrollDown cooldown-ms=150 { move-column-to-workspace-down; } - Mod+Ctrl+WheelScrollUp cooldown-ms=150 { move-column-to-workspace-up; } - - Mod+WheelScrollRight { focus-column-right; } - Mod+WheelScrollLeft { focus-column-left; } - Mod+Ctrl+WheelScrollRight { move-column-right; } - Mod+Ctrl+WheelScrollLeft { move-column-left; } - - // Usually scrolling up and down with Shift in applications results in - // horizontal scrolling; these binds replicate that. - Mod+Shift+WheelScrollDown { focus-column-right; } - Mod+Shift+WheelScrollUp { focus-column-left; } - Mod+Ctrl+Shift+WheelScrollDown { move-column-right; } - Mod+Ctrl+Shift+WheelScrollUp { move-column-left; } - - // You can refer to workspaces by index. However, keep in mind that - // niri is a dynamic workspace system, so these commands are kind of - // "best effort". Trying to refer to a workspace index bigger than - // the current workspace count will instead refer to the bottommost - // (empty) workspace. - // - // For example, with 2 workspaces + 1 empty, indices 3, 4, 5 and so on - // will all refer to the 3rd workspace. - Mod+1 { focus-workspace 1; } - Mod+2 { focus-workspace 2; } - Mod+3 { focus-workspace 3; } - Mod+4 { focus-workspace 4; } - Mod+5 { focus-workspace 5; } - Mod+6 { focus-workspace 6; } - Mod+7 { focus-workspace 7; } - Mod+8 { focus-workspace 8; } - Mod+9 { focus-workspace 9; } - Mod+Shift+1 { move-column-to-workspace 1; } - Mod+Shift+2 { move-column-to-workspace 2; } - Mod+Shift+3 { move-column-to-workspace 3; } - Mod+Shift+4 { move-column-to-workspace 4; } - Mod+Shift+5 { move-column-to-workspace 5; } - Mod+Shift+6 { move-column-to-workspace 6; } - Mod+Shift+7 { move-column-to-workspace 7; } - Mod+Shift+8 { move-column-to-workspace 8; } - Mod+Shift+9 { move-column-to-workspace 9; } - - // The following binds move the focused window in and out of a column. - // If the window is alone, they will consume it into the nearby column to the side. - // If the window is already in a column, they will expel it out. - Mod+BracketLeft { consume-or-expel-window-left; } - Mod+BracketRight { consume-or-expel-window-right; } - - // Consume one window from the right to the bottom of the focused column. - Mod+Comma { consume-window-into-column; } - // Expel the bottom window from the focused column to the right. - Mod+Period { expel-window-from-column; } - - Mod+R { switch-preset-column-width; } - Mod+Shift+R { switch-preset-window-height; } - Mod+Ctrl+R { reset-window-height; } - Mod+F { maximize-column; } - Mod+Shift+F { fullscreen-window; } - - // Expand the focused column to space not taken up by other fully visible columns. - // Makes the column "fill the rest of the space". - Mod+Ctrl+F { expand-column-to-available-width; } - - Mod+C { center-column; } - - // Finer width adjustments. - // This command can also: - // * set width in pixels: "1000" - // * adjust width in pixels: "-5" or "+5" - // * set width as a percentage of screen width: "25%" - // * adjust width as a percentage of screen width: "-10%" or "+10%" - // Pixel sizes use logical, or scaled, pixels. I.e. on an output with scale 2.0, - // set-column-width "100" will make the column occupy 200 physical screen pixels. - Mod+Minus { set-column-width "-5%"; } - Mod+Equal { set-column-width "+5%"; } - - // Finer height adjustments when in column with other windows. - Mod+Shift+Minus { set-window-height "-10%"; } - Mod+Shift+Equal { set-window-height "+10%"; } - - // Move the focused window between the floating and the tiling layout. - Mod+V { toggle-window-floating; } - Mod+Shift+V { switch-focus-between-floating-and-tiling; } - - // Toggle tabbed column display mode. - // Windows in this column will appear as vertical tabs, - // rather than stacked on top of each other. - Mod+W { toggle-column-tabbed-display; } - - // Actions to switch layouts. - // Note: if you uncomment these, make sure you do NOT have - // a matching layout switch hotkey configured in xkb options above. - // Having both at once on the same hotkey will break the switching, - // since it will switch twice upon pressing the hotkey (once by xkb, once by niri). - // Mod+Space { switch-layout "next"; } - // Mod+Shift+Space { switch-layout "prev"; } - - Print { screenshot; } - Ctrl+Print { screenshot-screen; } - Alt+Print { screenshot-window; } - - // Applications such as remote-desktop clients and software KVM switches may - // request that niri stops processing the keyboard shortcuts defined here - // so they may, for example, forward the key presses as-is to a remote machine. - // It's a good idea to bind an escape hatch to toggle the inhibitor, - // so a buggy application can't hold your session hostage. - // - // The allow-inhibiting=false property can be applied to other binds as well, - // which ensures niri always processes them, even when an inhibitor is active. - Mod+Escape allow-inhibiting=false { toggle-keyboard-shortcuts-inhibit; } - - // The quit action will show a confirmation dialog to avoid accidental exits. - Mod+Shift+E { quit; } - Ctrl+Alt+Delete { quit; } - - // Powers off the monitors. To turn them back on, do any input like - // moving the mouse or pressing any other key. - Mod+Shift+P { power-off-monitors; } -} diff --git a/niri/.lock.sh b/niri/.lock.sh deleted file mode 100755 index 78eb20c..0000000 --- a/niri/.lock.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env bash - -niri msg action "power-off-monitors" -swaylock -Ffk -i $HOME/Pictures/1476574162061.jpg -s fill diff --git a/nvim.lua/.config/nvim/init.lua b/nvim.lua/.config/nvim/init.lua index 396baa7..242ca7e 100644 --- a/nvim.lua/.config/nvim/init.lua +++ b/nvim.lua/.config/nvim/init.lua @@ -16,7 +16,7 @@ set langmap=ФИСВУАПРШОЛДЬТЩЗЙКЫЕГМЦЧНЯ;ABCDEFGHIJKLMNO " Incrementally show effects of :s, :smagic, :snomagic set icm=split -set number +set number relativenumber set nobackup nowritebackup set noswapfile diff --git a/nvim.lua/.config/nvim/lua/lsp_setup.lua b/nvim.lua/.config/nvim/lua/lsp_setup.lua index fae94ee..45845ad 100644 --- a/nvim.lua/.config/nvim/lua/lsp_setup.lua +++ b/nvim.lua/.config/nvim/lua/lsp_setup.lua @@ -62,7 +62,7 @@ vim.diagnostic.config({ float = { border = "single" } }) -- Setting up servers per language -- Default nvim-lsp setup: nil, clangd -local servers = { 'nil_ls', 'clangd', 'texlab', 'zls' } +local servers = { 'nil_ls', 'clangd', 'texlab' } for _, serv in ipairs(servers) do nvim_lsp[serv].setup{ diff --git a/nvim.lua/.config/nvim/lua/plugins.lua b/nvim.lua/.config/nvim/lua/plugins.lua index 57817ea..dde90a9 100644 --- a/nvim.lua/.config/nvim/lua/plugins.lua +++ b/nvim.lua/.config/nvim/lua/plugins.lua @@ -33,7 +33,6 @@ return require('packer').startup(function(use) } --Better syntax - use 'imsnif/kdl.vim' use 'rust-lang/rust.vim' use 'LnL7/vim-nix' use 'cespare/vim-toml' @@ -63,22 +62,22 @@ return require('packer').startup(function(use) end, } - use { - 'sainnhe/everforest', - -- config = function() - -- vim.cmd([[ - -- set termguicolors - -- let g:everforest_transparent_background = 2 - -- colorscheme everforest - -- ]]) - -- end, - } + -- use { + -- 'sainnhe/everforest', + -- config = function() + -- vim.cmd([[ + -- set termguicolors + -- let g:everforest_transparent_background = 2 + -- colorscheme everforest + -- ]]) + -- end, + -- } use { 'casonadams/walh', config = function() vim.cmd([[ set notermguicolors - colorscheme walh-one + colorscheme walh-default ]]) end, } diff --git a/niri/.config/alacritty/alacritty.toml b/sway/.config/alacritty/alacritty.toml similarity index 100% rename from niri/.config/alacritty/alacritty.toml rename to sway/.config/alacritty/alacritty.toml diff --git a/niri/.config/alacritty/alacritty.yml b/sway/.config/alacritty/alacritty.yml similarity index 100% rename from niri/.config/alacritty/alacritty.yml rename to sway/.config/alacritty/alacritty.yml diff --git a/niri/.config/i3status-rust/config.toml b/sway/.config/i3status-rust/config.toml similarity index 71% rename from niri/.config/i3status-rust/config.toml rename to sway/.config/i3status-rust/config.toml index 4b06105..b56486d 100644 --- a/niri/.config/i3status-rust/config.toml +++ b/sway/.config/i3status-rust/config.toml @@ -4,6 +4,16 @@ theme = "foot" [icons] icons = "material-nf" +[[block]] +block = "scratchpad" + +[[block]] +block = "time" +format = " $icon $timestamp.datetime(f:'%a %F %R', l:nl_NL) " +[block.theme_overrides] +idle_bg = { link = "idle_fg" } +idle_fg = { link = "idle_bg" } + [[block]] block = "maildir" interval = 60 @@ -12,7 +22,7 @@ threshold_critical = 1 display_type = "new" [[block.click]] button = "left" -cmd = "alacritty -e zsh -c neomutt" +cmd = "foot -a floating-foot -W 150x40 -- zsh -c neomutt" [[block]] block = "maildir" @@ -23,7 +33,7 @@ threshold_critical = 10 display_type = "new" [[block.click]] button = "left" -cmd = "alacritty -e zsh -c neomutt" +cmd = "foot -a floating-foot -W 150x40 -- zsh -c neomutt" [[block]] block = "backlight" @@ -42,6 +52,12 @@ block = "net" device = "enp1s0f0" format = " $icon{ | $ip $ipv6 }" +# TODO patch upstream +#[[block]] +#block = "net" +#device = "wg-mullvad" +#format = " $device up $ip " + [[block]] block = "memory" warning_swap = 100.0 @@ -51,27 +67,29 @@ critical_swap = 100.0 block = "load" format = " $1m.eng(w:4) $5m.eng(w:4) $15m.eng(w:4) " +# [[block]] +# block = "bluetooth" +# mac = "88:C9:E8:CE:69:9F" +# [[block.click]] +# button = "left" +# cmd = "bluetoothctl connect 88:C9:E8:CE:69:9F" +# [[block.click]] +# button = "right" +# cmd = "bluetoothctl disconnect 88:C9:E8:CE:69:9F" + [[block]] block = "sound" headphones_indicator = true [[block.click]] button = "left" -cmd = "alacritty -e zsh -c pulsemixer" +cmd = "foot --app-id floating-foot --window-size-chars=150x50 -- zsh -c pulsemixer" [[block]] block = "keyboard_layout" -driver = "localebus" +driver = "sway" [[block]] block = "battery" driver = "upower" format = " $icon $percentage $time " if_command = "test -e /sys/class/power_supply/BAT0" - -[[block]] -block = "time" -format = " $icon $timestamp.datetime(f:'%a %F %R', l:nl_NL) " -[block.theme_overrides] -idle_bg = { link = "idle_fg" } -idle_fg = { link = "idle_bg" } - diff --git a/niri/.config/i3status-rust/themes/everforest.toml b/sway/.config/i3status-rust/themes/everforest.toml similarity index 100% rename from niri/.config/i3status-rust/themes/everforest.toml rename to sway/.config/i3status-rust/themes/everforest.toml diff --git a/niri/.config/i3status-rust/themes/foot.toml b/sway/.config/i3status-rust/themes/foot.toml similarity index 100% rename from niri/.config/i3status-rust/themes/foot.toml rename to sway/.config/i3status-rust/themes/foot.toml diff --git a/niri/.config/i3status-rust/themes/moonfly.toml b/sway/.config/i3status-rust/themes/moonfly.toml similarity index 100% rename from niri/.config/i3status-rust/themes/moonfly.toml rename to sway/.config/i3status-rust/themes/moonfly.toml diff --git a/sway/.config/kanshi/config b/sway/.config/kanshi/config new file mode 100644 index 0000000..2e46355 --- /dev/null +++ b/sway/.config/kanshi/config @@ -0,0 +1,14 @@ +# Default +profile { + output eDP-1 enable adaptive_sync on +} +# Home +profile { + output eDP-1 enable position 3840,960 adaptive_sync on + output 'LG Electronics LG HDR 4K 0x00080CA7' enable mode 3840x2160 position 0,0 adaptive_sync on +} +# Work +profile { + output eDP-1 enable position 0,1200 adaptive_sync on + output "Samsung Electric Company LF24T450G HNMTA01726" enable mode 1920x1200@74.939Hz position 0,0 adaptive_sync on +} diff --git a/niri/.config/mako/config b/sway/.config/mako/config similarity index 100% rename from niri/.config/mako/config rename to sway/.config/mako/config diff --git a/niri/.config/mpv/mpv.conf b/sway/.config/mpv/mpv.conf similarity index 100% rename from niri/.config/mpv/mpv.conf rename to sway/.config/mpv/mpv.conf diff --git a/sway/.config/rofi/config.rasi b/sway/.config/rofi/config.rasi new file mode 100644 index 0000000..72773b6 --- /dev/null +++ b/sway/.config/rofi/config.rasi @@ -0,0 +1,8 @@ +configuration { + modi: "drun,ssh,run,combi"; + font: "Hack 11"; + combi-modi: "drun,ssh"; + terminal: "foot"; +} +//@theme "DarkBlue" +@theme "gruvbox-dark-hard" diff --git a/sway/.config/sway/colors/foot-colors b/sway/.config/sway/colors/foot-colors new file mode 100644 index 0000000..12d1f3b --- /dev/null +++ b/sway/.config/sway/colors/foot-colors @@ -0,0 +1,18 @@ +set $colorFG #dcdccc +set $colorBG #111111 +set $color00 #222222 +set $color01 #cc9393 +set $color02 #7f9f7f +set $color03 #d0bf8f +set $color04 #6ca0a3 +set $color05 #dc8cc3 +set $color06 #93e0e3 +set $color07 #dcdccc +set $color10 #666666 +set $color11 #dca3a3 +set $color12 #bfebbf +set $color13 #f0dfaf +set $color14 #8cd0d3 +set $color15 #fcace3 +set $color16 #b3ffff +set $color17 #ffffff diff --git a/sway/.config/sway/colors/moonfly b/sway/.config/sway/colors/moonfly new file mode 100644 index 0000000..c592bac --- /dev/null +++ b/sway/.config/sway/colors/moonfly @@ -0,0 +1,18 @@ +set $colorFG #b2b2b2 +set $colorBG #080808 +set $color00 #323437 +set $color01 #ff5454 +set $color02 #8cc85f +set $color03 #e3c78a +set $color04 #80a0ff +set $color05 #d183e8 +set $color06 #79dac8 +set $color07 #c6c6c6 +set $color10 #949494 +set $color11 #ff5189 +set $color12 #36c692 +set $color13 #c2c292 +set $color14 #74b2ff +set $color15 #ae81ff +set $color16 #85dc85 +set $color17 #e4e4e4 diff --git a/sway/.config/sway/config b/sway/.config/sway/config new file mode 100644 index 0000000..ef5f24c --- /dev/null +++ b/sway/.config/sway/config @@ -0,0 +1,316 @@ +# Default config for sway +# +# Copy this to ~/.config/sway/config and edit it to your liking. +# +# Read `man 5 sway` for a complete reference. + +### Variables +# +# Logo key. Use Mod1 for Alt. +set $mod Mod4 +# Home row direction keys, like vim +set $left h +set $down j +set $up k +set $right l +# Your preferred terminal emulator +set $term foot +set $floatterm foot -a floating-foot +set $lock $HOME/.config/sway/lock.sh +set $locknow $HOME/.config/sway/locknow.sh + +# Your preferred application launcher +# Note: pass the final command to swaymsg so that the resulting window can be opened +# on the original workspace that the command was run on. +set $menu rofi -show combi | xargs swaymsg exec -- + +### Output configuration +output * bg /home/0xa/Pictures/tiles/343.png tile + +# screen lock +exec swayidle -w \ + timeout 300 $lock \ + timeout 303 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"' \ + before-sleep $lock + +### Input configuration +input type:touchpad { + accel_profile adaptive + click_method clickfinger + dwt enabled + dwtp enabled + middle_emulation enabled + natural_scroll enabled + events disabled +} +bindsym $mod+Shift+t input type:touchpad events toggle enabled disabled + +input type:keyboard { + xkb_layout "us,ru" + xkb_options "caps:ctrl_modifier,grp:alt_space_toggle" +} + +focus_follows_mouse yes +# mouse_warping container +seat * hide_cursor 5000 + +### Key bindings +# +# Basics: +# + # Start a terminal + bindsym --to-code $mod+Return exec $term + # start a floating terminal + bindsym --to-code $mod+Shift+Return exec $floatterm + for_window [app_id="floating-foot"] floating enable + + # Start a python shell + bindsym --to-code $mod+z exec $floatterm -- python + + # Kill focused window + bindsym --to-code $mod+Shift+q kill + + # Start your launcher + bindsym --to-code $mod+d exec $menu + + # Drag floating windows by holding down $mod and left mouse button. + # Resize them with right mouse button + $mod. + # Despite the name, also works for non-floating windows. + # Change normal to inverse to use left mouse button for resizing and right + # mouse button for dragging. + floating_modifier $mod normal + + # Reload the configuration file + bindsym --to-code $mod+Shift+c reload + + # Exit sway (logs you out of your Wayland session) + bindsym --to-code $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -b 'Yes, exit sway' 'swaymsg exit' + + # Brightness + bindsym --to-code --locked XF86MonBrightnessDown exec "brightnessctl set 5%-" + bindsym --to-code --locked XF86MonBrightnessUp exec "brightnessctl set +5%" + # Volume + bindsym --to-code --locked XF86AudioRaiseVolume exec 'wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+' + bindsym --to-code --locked XF86AudioLowerVolume exec 'wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-' + bindsym --to-code --locked XF86AudioMute exec 'wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle' + # Screen locking + bindsym --to-code $mod+Delete exec $lock + # Screenshots + bindsym --to-code Print exec 'grim -g "$(slurp)" - | wl-copy' + bindsym --to-code $mod+p exec 'grim -g "$(slurp)" - | wl-copy' + bindsym --to-code $mod+Print exec 'grim -g "$(slurp)" ~/Pictures/$(date +"%Y-%m-%d-%H-%M-%S").png' + bindsym --to-code $mod+Mod1+p exec 'grim -g "$(slurp)" ~/Pictures/$(date +"%Y-%m-%d-%H-%M-%S").png' + # Notifications + bindsym --to-code $mod+m exec 'swaync-client -t' + # Check mail + bindsym --to-code $mod+n exec 'systemctl --user start mbsync.service' + + +# +# Moving around: +# + # Move your focus around + bindsym --to-code $mod+$left focus left + bindsym --to-code $mod+$down focus down + bindsym --to-code $mod+$up focus up + bindsym --to-code $mod+$right focus right + # Or use $mod+[up|down|left|right] + bindsym --to-code $mod+Left focus left + bindsym --to-code $mod+Down focus down + bindsym --to-code $mod+Up focus up + bindsym --to-code $mod+Right focus right + + # Move the focused window with the same, but add Shift + bindsym --to-code $mod+Shift+$left move left + bindsym --to-code $mod+Shift+$down move down + bindsym --to-code $mod+Shift+$up move up + bindsym --to-code $mod+Shift+$right move right + # Ditto, with arrow keys + bindsym --to-code $mod+Shift+Left move left + bindsym --to-code $mod+Shift+Down move down + bindsym --to-code $mod+Shift+Up move up + bindsym --to-code $mod+Shift+Right move right +# +# Workspaces: +# + # define outputs + set $builtin_out eDP-1 + set $home_out 'LG Electronics LG HDR 4K 0x00080CA7' + # bind workspaces to inputs + workspace 1 output $home_out $builtin_out + workspace 2 output $home_out $builtin_out + workspace 3 output $home_out $builtin_out + workspace 4 output $home_out $builtin_out + workspace 5 output $home_out $builtin_out + workspace 6 output $home_out $builtin_out + workspace 7 output $home_out $builtin_out + workspace 8 output $home_out $builtin_out + workspace 9 output $home_out $builtin_out + workspace 10 output $home_out $builtin_out + workspace 11 output $builtin_out + workspace 12 output $builtin_out + workspace 13 output $builtin_out + workspace 14 output $builtin_out + workspace 15 output $builtin_out + workspace 16 output $builtin_out + workspace 17 output $builtin_out + workspace 18 output $builtin_out + workspace 19 output $builtin_out + workspace 20 output $builtin_out + + # move workspace between inputs + bindsym $mod+Mod1+Left move workspace to output left + bindsym $mod+Mod1+Right move workspace to output right + bindsym $mod+Mod1+Up move workspace to output up + bindsym $mod+Mod1+Down move workspace to output down + # Switch to workspace + bindsym --to-code $mod+1 workspace number 1 + bindsym --to-code $mod+2 workspace number 2 + bindsym --to-code $mod+3 workspace number 3 + bindsym --to-code $mod+4 workspace number 4 + bindsym --to-code $mod+5 workspace number 5 + bindsym --to-code $mod+6 workspace number 6 + bindsym --to-code $mod+7 workspace number 7 + bindsym --to-code $mod+8 workspace number 8 + bindsym --to-code $mod+9 workspace number 9 + bindsym --to-code $mod+0 workspace number 10 + # Move focused container to workspace + bindsym --to-code $mod+Shift+1 move container to workspace number 1 + bindsym --to-code $mod+Shift+2 move container to workspace number 2 + bindsym --to-code $mod+Shift+3 move container to workspace number 3 + bindsym --to-code $mod+Shift+4 move container to workspace number 4 + bindsym --to-code $mod+Shift+5 move container to workspace number 5 + bindsym --to-code $mod+Shift+6 move container to workspace number 6 + bindsym --to-code $mod+Shift+7 move container to workspace number 7 + bindsym --to-code $mod+Shift+8 move container to workspace number 8 + bindsym --to-code $mod+Shift+9 move container to workspace number 9 + bindsym --to-code $mod+Shift+0 move container to workspace number 10 + # Switch to workspace + bindsym --to-code $mod+Mod1+1 workspace number 11 + bindsym --to-code $mod+Mod1+2 workspace number 12 + bindsym --to-code $mod+Mod1+3 workspace number 13 + bindsym --to-code $mod+Mod1+4 workspace number 14 + bindsym --to-code $mod+Mod1+5 workspace number 15 + bindsym --to-code $mod+Mod1+6 workspace number 16 + bindsym --to-code $mod+Mod1+7 workspace number 17 + bindsym --to-code $mod+Mod1+8 workspace number 18 + bindsym --to-code $mod+Mod1+9 workspace number 19 + bindsym --to-code $mod+Mod1+0 workspace number 20 + # Move focused container to workspace + bindsym --to-code $mod+Mod1+Shift+1 move container to workspace number 11 + bindsym --to-code $mod+Mod1+Shift+2 move container to workspace number 12 + bindsym --to-code $mod+Mod1+Shift+3 move container to workspace number 13 + bindsym --to-code $mod+Mod1+Shift+4 move container to workspace number 14 + bindsym --to-code $mod+Mod1+Shift+5 move container to workspace number 15 + bindsym --to-code $mod+Mod1+Shift+6 move container to workspace number 16 + bindsym --to-code $mod+Mod1+Shift+7 move container to workspace number 17 + bindsym --to-code $mod+Mod1+Shift+8 move container to workspace number 18 + bindsym --to-code $mod+Mod1+Shift+9 move container to workspace number 19 + bindsym --to-code $mod+Mod1+Shift+0 move container to workspace number 20 + # Note: workspaces can have any name you want, not just numbers. + # We just use 1-10 as the default. +# +# Layout stuff: +# + # You can "split" the current object of your focus with + # $mod+b or $mod+v, for horizontal and vertical splits + # respectively. + bindsym --to-code $mod+b splith + bindsym --to-code $mod+v splitv + + # Switch the current container between different layout styles + bindsym --to-code $mod+s layout stacking + bindsym --to-code $mod+w layout tabbed + bindsym --to-code $mod+e layout toggle split + + # Make the current focus fullscreen + bindsym --to-code $mod+f fullscreen + + # Toggle the current focus between tiling and floating mode + bindsym --to-code $mod+Shift+space floating toggle + + # Swap focus between the tiling area and the floating area + bindsym --to-code $mod+space focus mode_toggle + + # Move focus to the parent container + bindsym --to-code $mod+a focus parent + bindsym --to-code $mod+Shift+a focus child +# +# Scratchpad: +# + # Sway has a "scratchpad", which is a bag of holding for windows. + # You can send windows there and get them back later. + + # Move the currently focused window to the scratchpad + bindsym --to-code $mod+Shift+minus move scratchpad + + # Show the next scratchpad window or hide the focused scratchpad window. + # If there are multiple scratchpad windows, this command cycles through them. + bindsym --to-code $mod+minus scratchpad show +# +# Resizing containers: +# +mode "resize" { + # left will shrink the containers width + # right will grow the containers width + # up will shrink the containers height + # down will grow the containers height + bindsym --to-code $left resize shrink width 30px + bindsym --to-code $down resize grow height 30px + bindsym --to-code $up resize shrink height 30px + bindsym --to-code $right resize grow width 30px + + # Ditto, with arrow keys + bindsym --to-code Left resize shrink width 10px + bindsym --to-code Down resize grow height 10px + bindsym --to-code Up resize shrink height 10px + bindsym --to-code Right resize grow width 10px + + # Return to default mode + bindsym --to-code Return mode "default" + bindsym --to-code Escape mode "default" +} +bindsym --to-code $mod+r mode "resize" + +## Styling: colors +include ./colors/foot-colors + +## Window styling +# Border BG Text Indicator Child Border +client.focused $color05 $color05 $color00 $color07 $color05 +#client.focused_inactive $color00 $color00 $color00 $color00 $color00 + +# +# Status Bar: +# +# Read `man 5 sway-bar` for more information about this section. +bar { + position top + font pango:Hack 9 + icon_theme "Adwaita" + status_command /run/current-system/sw/bin/i3status-rs + colors { + background $colorBG + separator $color05 + # statusline $color15 + + # STATE Border BG Text + focused_workspace $color05 $color05 $color00 + } +} + +# default border +default_border pixel 2 +# Set font +font pango:Hack 9 + +# bindsym --to-code $mod+t input type:touchpad toggle + +# Startup applications +exec iwgtk -i +exec blueman-applet +exec_always pkill kanshi; exec kanshi +exec swaync + +include ./config.d/* +include /etc/sway/config.d/* diff --git a/sway/.config/sway/config.d/window_overrides b/sway/.config/sway/config.d/window_overrides new file mode 100644 index 0000000..640c88a --- /dev/null +++ b/sway/.config/sway/config.d/window_overrides @@ -0,0 +1,22 @@ +# window rules +# floating +for_window [app_id="imv"] floating enable; border normal +for_window [app_id="org.twosheds.iwgtk"] floating enable; border normal +for_window [app_id=".blueman-manager-wrapped"] floating enable; border normal +for_window [app_id="com.nextcloud.desktopclient.nextcloud"] floating enable; border normal + +# tabbed containers +for_window [app_id="CubicSDR"] layout tabbed +for_window [app_id="org.wireshark.Wireshark"] layout tabbed + +for_window [app_id="zoom" title="^zoom$"] border none, floating enable +# For specific Zoom windows +for_window [app_id="zoom" title="^(Zoom|About)$"] border pixel, floating enable +for_window [app_id="zoom" title="Settings"] floating enable, floating_minimum_size 960 x 700 +# Open Zoom Meeting windows on a new workspace (a bit hacky) +for_window [app_id="zoom" title="Zoom Meeting(.*)?"] workspace next_on_output --create, move container to workspace current, floating disable, inhibit_idle open +# kill firefox sharing indicator +for_window [app_id="firefox" title="Firefox — Sharing Indicator"] kill +# fix picture-in-picture behaviour +for_window [app_id="firefox" title="Picture-in-Picture"] floating enable, sticky enable + diff --git a/sway/.config/sway/lock.sh b/sway/.config/sway/lock.sh new file mode 100755 index 0000000..3c620f1 --- /dev/null +++ b/sway/.config/sway/lock.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + +swaylock -Ffk -i $HOME/Pictures/tiles/343.png -s tile diff --git a/sway/.config/sway/locknow.sh b/sway/.config/sway/locknow.sh new file mode 100755 index 0000000..e45f248 --- /dev/null +++ b/sway/.config/sway/locknow.sh @@ -0,0 +1,9 @@ +#!/bin/sh + +swayidle -w \ + timeout 1 'swaymsg "output * dpms off"' \ + resume 'swaymsg "output * dpms on"' \ + before-sleep '$HOME/.config/sway/lock.sh' + +pid=$! +kill pid diff --git a/sway/.config/sway/wallpapers/ibm.jpg b/sway/.config/sway/wallpapers/ibm.jpg new file mode 100644 index 0000000..9177600 Binary files /dev/null and b/sway/.config/sway/wallpapers/ibm.jpg differ diff --git a/sway/.config/sway/wallpapers/lock-fullhd.png b/sway/.config/sway/wallpapers/lock-fullhd.png new file mode 100644 index 0000000..7b6c79c Binary files /dev/null and b/sway/.config/sway/wallpapers/lock-fullhd.png differ diff --git a/sway/.config/sway/wallpapers/lock-wuxga.png b/sway/.config/sway/wallpapers/lock-wuxga.png new file mode 100644 index 0000000..c59533f Binary files /dev/null and b/sway/.config/sway/wallpapers/lock-wuxga.png differ diff --git a/sway/.config/sway/wallpapers/wall.jpg b/sway/.config/sway/wallpapers/wall.jpg new file mode 100644 index 0000000..f5e2997 Binary files /dev/null and b/sway/.config/sway/wallpapers/wall.jpg differ diff --git a/sway/.config/swayimg/config b/sway/.config/swayimg/config new file mode 100644 index 0000000..a7b6e1a --- /dev/null +++ b/sway/.config/swayimg/config @@ -0,0 +1,105 @@ +# https://git.deuill.org/deuill/dotfiles +################################################################################ +# Viewer mode configuration +################################################################################ +[viewer] +# Window background color (RGBA) +window = #00000000 +# Background for transparent images (grid/RGBA) +transparency = grid +# Default image scale (optimal/fit/width/height/fill/real) +scale = optimal +# Fix position of the image on the window surface (yes/no) +fixed = yes +# Anti-aliasing (yes/no) +antialiasing = no +# Run slideshow at startup (yes/no) +slideshow = no +# Slideshow image display time (seconds) +slideshow_time = 3 +# Number of previously viewed images to store in cache +history = 1 +# Number of preloaded images (read ahead) +preload = 1 + +################################################################################ +# Gallery mode configuration +################################################################################ +[gallery] +# Max size of the thumbnail (pixels) +size = 300 +# Max number of thumbnails in cache, 0 to unlimit +cache = 100 +# Fill the entire tile with thumbnail (yes/no) +fill = yes +# Use anti-aliasing for thumbnails (yes/no) +antialiasing = no +# Background color of the window (RGBA) +window = #00000000 +# Background color of the tile (RGBA) +background = #202020ff +# Background color of the selected tile (RGBA) +select = #333333ff +# Border color of the selected tile (RGBA) +border = #ab4642ff +# Shadow color of the selected tile (RGBA) +shadow = #00000000 + +################################################################################ +# Font configuration +################################################################################ +[font] +# Font name +name = Iosevka +# Font size (pt) +size = 18 +# Font color (RGBA) +color = #fefefeff +# Shadow color (RGBA) +shadow = #333333ff + +################################################################################ +# Image meta info scheme (format, size, EXIF, etc) +################################################################################ + +# Display scheme for viewer mode (position = content) +[info.viewer] +top_left = +name,+format,+filesize,+imagesize,+exif +top_right = index +bottom_left = scale,frame +bottom_right = status + +# Display scheme for gallery mode (position = content) +[info.gallery] +top_left = none +top_right = none +bottom_left = none +bottom_right = name,status + +################################################################################ +# Viewer mode key binding configuration. +################################################################################ +[keys.viewer] +h = prev_file +j = zoom -10 +k = zoom +10 +l = next_file + +Shift+h = prev_dir +Shift+j = rotate_left +Shift+k = rotate_right +Shift+l = next_dir + +Alt+h = step_left 10 +Alt+j = step_down 10 +Alt+k = step_up 10 +Alt+l = step_right 10 + +################################################################################ +# Gallery mode key binding configuration. +################################################################################ +[keys.gallery] +h = step_left +j = step_down +k = step_up +l = step_right