Fully migrate kardorf config
This commit is contained in:
@ -22,17 +22,25 @@ with lib;
|
||||
|
||||
let cfg = config.modules.i3;
|
||||
in {
|
||||
options.modules.i3 = { enable = mkOption { default = false; }; };
|
||||
options.modules.i3 = {
|
||||
enable = mkOption { default = false; };
|
||||
config-file = mkOption { default = ./i3/config; };
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
xsession.windowManager.i3 = { enable = true; };
|
||||
programs = { i3status-rust = { enable = true; }; };
|
||||
xsession.windowManager.i3 = { enable = true; };
|
||||
|
||||
# Overwrite default home-manager config file
|
||||
xdg.configFile."i3/config".source = lib.mkForce cfg.config-file;
|
||||
|
||||
home.file = {
|
||||
".config/i3" = {
|
||||
source = ./i3;
|
||||
recursive = false;
|
||||
".config/i3/scripts" = {
|
||||
source = ./i3/scripts;
|
||||
recursive = true;
|
||||
};
|
||||
".config/i3/workspace-messaging.json".source =
|
||||
./i3/workspace-chat-schildi-tele-rocket.json;
|
||||
".config/i3status-rust/config.toml".source = ./i3status-rust/config.toml;
|
||||
};
|
||||
|
||||
|
315
modules/home/i3/i3/config-kardorf
Normal file
315
modules/home/i3/i3/config-kardorf
Normal file
@ -0,0 +1,315 @@
|
||||
# i3 config file (v4)
|
||||
#
|
||||
# Please see https://i3wm.org/docs/userguide.html for a complete reference!
|
||||
|
||||
set $mod Mod4
|
||||
set $scripts ~/.config/i3/scripts
|
||||
set $lock "i3lock --ignore-empty-password --color=000000"
|
||||
|
||||
# Font for window titles
|
||||
font pango:FuraCode Nerd Font 12
|
||||
|
||||
# xss-lock grabs a logind suspend inhibit lock and will use $lock to lock the
|
||||
# screen before suspend. Use loginctl lock-session to lock your screen.
|
||||
exec --no-startup-id xss-lock --transfer-sleep-lock -- $lock --nofork
|
||||
|
||||
# Screen brightness controls
|
||||
# bindsym XF86MonBrightnessUp exec "xbacklight -inc 10; notify-send 'brightness up'"
|
||||
# bindsym XF86MonBrightnessDown exec "xbacklight -dec 10; notify-send 'brightness down'"
|
||||
|
||||
# Use pactl to adjust volume in PulseAudio.
|
||||
# set $refresh_i3status killall -SIGUSR1 i3status
|
||||
set $refresh_i3blocks pkill -RTMIN+1 i3blocks
|
||||
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3blocks
|
||||
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3blocks
|
||||
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3blocks
|
||||
bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3blocks
|
||||
|
||||
# Use Mouse+$mod to drag floating windows to their wanted position
|
||||
floating_modifier $mod
|
||||
|
||||
# start a terminal
|
||||
bindsym $mod+Return exec alacritty
|
||||
|
||||
# kill focused window
|
||||
bindsym $mod+Shift+q kill
|
||||
bindsym $mod+x kill
|
||||
|
||||
# Simulates alt+f4
|
||||
bindsym Mod1+F4 kill
|
||||
|
||||
# start program launcher
|
||||
bindsym $mod+d exec rofi -show run
|
||||
|
||||
# change focus
|
||||
bindsym $mod+h focus left
|
||||
bindsym $mod+j focus down
|
||||
bindsym $mod+k focus up
|
||||
bindsym $mod+l focus right
|
||||
|
||||
# alternatively, you can use the cursor keys:
|
||||
bindsym $mod+Left focus left
|
||||
bindsym $mod+Down focus down
|
||||
bindsym $mod+Up focus up
|
||||
bindsym $mod+Right focus right
|
||||
|
||||
# move focused window
|
||||
bindsym $mod+Shift+h move left
|
||||
bindsym $mod+Shift+j move down
|
||||
bindsym $mod+Shift+k move up
|
||||
bindsym $mod+Shift+l move right
|
||||
|
||||
# alternatively, you can use the cursor keys:
|
||||
bindsym $mod+Shift+Left move left
|
||||
bindsym $mod+Shift+Down move down
|
||||
bindsym $mod+Shift+Up move up
|
||||
bindsym $mod+Shift+Right move right
|
||||
|
||||
# split in horizontal / vertical orientation
|
||||
bindsym $mod+Shift+v split h
|
||||
bindsym $mod+v split v
|
||||
|
||||
# enter fullscreen mode for the focused container
|
||||
bindsym $mod+f fullscreen toggle
|
||||
|
||||
# change container layout (stacked, tabbed, toggle split)
|
||||
# bindsym $mod+Shift+w layout stacking
|
||||
# bindsym $mod+w layout tabbed
|
||||
# bindsym $mod+e layout toggle split
|
||||
|
||||
# toggle tiling / floating
|
||||
bindsym $mod+Shift+space floating toggle
|
||||
|
||||
# change focus between tiling / floating windows
|
||||
bindsym $mod+space focus mode_toggle
|
||||
|
||||
# focus the parent container
|
||||
bindsym $mod+a focus parent
|
||||
|
||||
# focus the child container
|
||||
#bindsym $mod+d focus child
|
||||
|
||||
# The middle button over a titlebar kills the window
|
||||
bindsym --release button2 kill
|
||||
|
||||
# Define names for default workspaces for which we configure key bindings later on.
|
||||
# We use variables to avoid repeating the names in multiple places.
|
||||
set $ws1 "1"
|
||||
set $ws2 "2"
|
||||
set $ws3 "3"
|
||||
set $ws4 "4"
|
||||
set $ws5 "5"
|
||||
set $ws6 "6"
|
||||
set $ws7 "7"
|
||||
set $ws8 "8"
|
||||
set $ws9 "9"
|
||||
set $ws10 "10"
|
||||
|
||||
# switch to workspace
|
||||
bindsym $mod+1 workspace number $ws1
|
||||
bindsym $mod+2 workspace number $ws2
|
||||
bindsym $mod+3 workspace number $ws3
|
||||
bindsym $mod+4 workspace number $ws4
|
||||
bindsym $mod+5 workspace number $ws5
|
||||
bindsym $mod+6 workspace number $ws6
|
||||
bindsym $mod+7 workspace number $ws7
|
||||
bindsym $mod+8 workspace number $ws8
|
||||
bindsym $mod+9 workspace number $ws9
|
||||
bindsym $mod+0 workspace number $ws10
|
||||
|
||||
# move focused container to workspace
|
||||
bindsym $mod+Ctrl+1 move container to workspace number $ws1
|
||||
bindsym $mod+Ctrl+2 move container to workspace number $ws2
|
||||
bindsym $mod+Ctrl+3 move container to workspace number $ws3
|
||||
bindsym $mod+Ctrl+4 move container to workspace number $ws4
|
||||
bindsym $mod+Ctrl+5 move container to workspace number $ws5
|
||||
bindsym $mod+Ctrl+6 move container to workspace number $ws6
|
||||
bindsym $mod+Ctrl+7 move container to workspace number $ws7
|
||||
bindsym $mod+Ctrl+8 move container to workspace number $ws8
|
||||
bindsym $mod+Ctrl+9 move container to workspace number $ws9
|
||||
bindsym $mod+Ctrl+0 move container to workspace number $ws10
|
||||
|
||||
# move focused container to workspace and follow
|
||||
bindsym $mod+Shift+1 move container to workspace number $ws1; workspace $ws1
|
||||
bindsym $mod+Shift+2 move container to workspace number $ws2; workspace $ws2
|
||||
bindsym $mod+Shift+3 move container to workspace number $ws3; workspace $ws3
|
||||
bindsym $mod+Shift+4 move container to workspace number $ws4; workspace $ws4
|
||||
bindsym $mod+Shift+5 move container to workspace number $ws5; workspace $ws5
|
||||
bindsym $mod+Shift+6 move container to workspace number $ws6; workspace $ws6
|
||||
bindsym $mod+Shift+7 move container to workspace number $ws7; workspace $ws7
|
||||
bindsym $mod+Shift+8 move container to workspace number $ws8; workspace $ws8
|
||||
bindsym $mod+Shift+9 move container to workspace number $ws9; workspace $ws9
|
||||
bindsym $mod+Shift+0 move container to workspace number $ws10; workspace $ws10
|
||||
|
||||
# Monitor config
|
||||
set $monitor_left "DVI-D-0"
|
||||
set $monitor_right "DVI-D-1"
|
||||
|
||||
workspace $ws1 output $monitor_left
|
||||
workspace $ws2 output $monitor_left
|
||||
workspace $ws3 output $monitor_left
|
||||
workspace $ws4 output $monitor_left
|
||||
workspace $ws5 output $monitor_left
|
||||
workspace $ws6 output $monitor_right
|
||||
workspace $ws7 output $monitor_right
|
||||
workspace $ws8 output $monitor_right
|
||||
workspace $ws9 output $monitor_right
|
||||
workspace $ws10 output $monitor_right
|
||||
|
||||
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
|
||||
bindsym $mod+Shift+r restart
|
||||
|
||||
# resize window (you can also use the mouse for that)
|
||||
mode "resize" {
|
||||
# Pressing left will shrink the window’s width.
|
||||
# Pressing right will grow the window’s width.
|
||||
# Pressing up will shrink the window’s height.
|
||||
# Pressing down will grow the window’s height.
|
||||
bindsym h resize shrink width 10 px or 10 ppt
|
||||
bindsym j resize grow height 10 px or 10 ppt
|
||||
bindsym k resize shrink height 10 px or 10 ppt
|
||||
bindsym l resize grow width 10 px or 10 ppt
|
||||
|
||||
# same bindings, but for the arrow keys
|
||||
bindsym Left resize shrink width 10 px or 10 ppt
|
||||
bindsym Down resize grow height 10 px or 10 ppt
|
||||
bindsym Up resize shrink height 10 px or 10 ppt
|
||||
bindsym Right resize grow width 10 px or 10 ppt
|
||||
|
||||
# back to normal: Enter or Escape or $mod+r
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
bindsym $mod+r mode "default"
|
||||
}
|
||||
|
||||
bindsym $mod+r mode "resize"
|
||||
|
||||
bar {
|
||||
font pango:DejaVu Sans Mono, Font Awesome 15
|
||||
status_command i3status-rs
|
||||
position bottom
|
||||
|
||||
tray_output DVI-D-0
|
||||
}
|
||||
|
||||
|
||||
set $mode_system System (l) lock, (e) logout, (r) reboot, (s) shutdown
|
||||
mode "$mode_system" {
|
||||
bindsym l exec --no-startup-id $lock, mode "default"
|
||||
bindsym e exec --no-startup-id i3-msg exit, mode "default" # logout
|
||||
bindsym r exec --no-startup-id systemctl reboot, mode "default"
|
||||
bindsym s exec --no-startup-id systemctl poweroff, mode "default"
|
||||
bindsym h exec --no-startup-id $lock && systemctl hibernate, mode "default"
|
||||
bindsym Shift+s exec --no-startup-id $lock && systemctl suspend, mode "default"
|
||||
|
||||
# back to normal: Enter or Escape
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
}
|
||||
bindsym $mod+Shift+e mode "$mode_system"
|
||||
|
||||
bindsym $mod+Tab exec --no-startup-id $lock
|
||||
|
||||
bindsym $mod+Print exec --no-startup-id "xfce4-screenshooter"
|
||||
|
||||
bindsym $mod+c exec qalculate-gtk
|
||||
bindsym $mod+Shift+p exec xwacomcalibrate
|
||||
bindsym $mod+e exec thunar
|
||||
bindsym $mod+Shift+c exec $scripts/jupyter-calculator
|
||||
bindsym $mod+b exec firefox
|
||||
bindsym $mod+u exec pamac-manager
|
||||
bindsym $mod+p exec $scripts/display-toggle-mirror
|
||||
|
||||
workspace_auto_back_and_forth yes
|
||||
|
||||
# default_border pixel
|
||||
default_border normal
|
||||
default_floating_border normal
|
||||
hide_edge_borders smart
|
||||
|
||||
show_marks no
|
||||
|
||||
# switch to workspace with urgent window automatically
|
||||
for_window [urgent=latest] focus
|
||||
|
||||
focus_on_window_activation focus
|
||||
|
||||
assign [class="firefox" title="Mozilla Firefox$"] workspace $ws1
|
||||
assign [class="TelegramDesktop"] workspace $ws9
|
||||
assign [class="Signal"] workspace $ws9
|
||||
assign [class="Rocket.Chat"] workspace $ws9
|
||||
assign [class="Element"] workspace $ws9
|
||||
assign [class="SchildiChat"] workspace $ws9
|
||||
assign [class="thunderbird"] workspace $ws10
|
||||
assign [class="zoom"] workspace $ws5
|
||||
assign [class="Zotero"] workspace $ws8
|
||||
|
||||
for_window [class="firefox" urgent="latest"] focus
|
||||
|
||||
for_window [title="Manjaro Settings Manager"] floating enable
|
||||
for_window [class="pamac-manager"] floating enable
|
||||
for_window [class="Pamac-updater"] floating enable
|
||||
for_window [class="Qalculate-gtk"] floating enable
|
||||
for_window [class="Gcolor3"] floating enable
|
||||
#for_window [class="zoom" title="Chat"] floating enable
|
||||
#for_window [class="Thunderbird" instance="Msgcompose"] floating enable
|
||||
#
|
||||
for_window [window_role=floating] floating enable
|
||||
|
||||
for_window [class="Viewnior"] border normal
|
||||
|
||||
########## Autostart applications ##########
|
||||
exec firefox
|
||||
|
||||
exec --no-startup-id nm-applet
|
||||
exec --no-startup-id blueman-applet
|
||||
exec --no-startup-id xfce4-power-manager
|
||||
exec --no-startup-id nextcloud --background
|
||||
# exec --no-startup-id xfce4-screensaver
|
||||
# exec --no-startup-id /usr/bin/emacs --daemon
|
||||
|
||||
# Authentication agent
|
||||
exec --no-startup-id /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
|
||||
exec --no-startup-id /usr/bin/env gnome-keyring-daemon --start
|
||||
|
||||
# Notify about software updates
|
||||
exec --no-startup-id pamac-tray
|
||||
exec --no-startup-id clipit
|
||||
# exec --no-startup-id xfce4-clipman
|
||||
|
||||
# Notify about kernel updates
|
||||
exec --no-startup-id msm_notifier
|
||||
|
||||
# Audio
|
||||
exec --no-startup-id start-pulseaudio-x11
|
||||
exec --no-startup-id pa-applet
|
||||
|
||||
# Background
|
||||
exec --no-startup-id nitrogen --restore
|
||||
|
||||
# Adjust display temperature
|
||||
exec --no-startup-id redshift
|
||||
|
||||
# Notifications
|
||||
exec --no-startup-id /usr/lib/xfce4/notifyd/xfce4-notifyd
|
||||
|
||||
# exec --no-startup-id xautolock -time 10 -locker blurlock
|
||||
exec_always --no-startup-id ff-theme-util
|
||||
exec_always --no-startup-id fix_xcursor
|
||||
|
||||
exec_always --no-startup-id "$scripts/display-layoutpicker"
|
||||
|
||||
|
||||
#############################
|
||||
### settings for i3-gaps: ###
|
||||
#############################
|
||||
|
||||
# Set inner/outer gaps
|
||||
gaps inner 8
|
||||
gaps outer -2
|
||||
|
||||
# Smart gaps (gaps used if only more than one container on the workspace)
|
||||
smart_gaps on
|
||||
|
||||
# Smart borders (draw borders around container only if it is not the only container on this workspace)
|
||||
smart_borders on
|
@ -18,7 +18,7 @@ start_program()
|
||||
$program & > /dev/null
|
||||
}
|
||||
|
||||
i3-msg 'workspace 9; append_layout ~/.config/i3/workspace-chat-schildi-tele-rocket.json'
|
||||
i3-msg 'workspace 9; append_layout ~/.config/i3/workspace-messaging.json'
|
||||
start_program chat.schildi.desktop
|
||||
sleep 0.1
|
||||
start_program telegram-desktop
|
||||
|
@ -33,7 +33,7 @@ in {
|
||||
misc.assume_yes = true;
|
||||
misc.no_retry = true;
|
||||
|
||||
pre_commands."Update dotfiles flake" = "home-update-flake";
|
||||
# pre_commands."Update dotfiles flake" = "home-update-flake";
|
||||
|
||||
git = {
|
||||
# Additional git repositories to pull
|
||||
|
Reference in New Issue
Block a user