diff --git a/.config/i3/config b/.config/i3/config new file mode 100644 index 0000000..59eda70 --- /dev/null +++ b/.config/i3/config @@ -0,0 +1,63 @@ +set $mod Mod4 + +font pango:Hasklig 10 + +# Run Nitrogen to restore the desktop wallpapers. +exec --no-startup-id nitrogen --restore +# Start the NetworkManager tray applet. +exec --no-startup-id nm-applet + +# Use Mouse+$mod to drag floating windows. +floating_modifier $mod + +# Disable moving the mouse to the container when switching workspaces. +mouse_warping none + +# Define names for default workspaces. +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" + +# Assign workspaces to monitors. +workspace $ws1 output HDMI-0 +workspace $ws2 output HDMI-0 +workspace $ws3 output HDMI-0 +workspace $ws4 output HDMI-0 +workspace $ws5 output HDMI-0 +workspace $ws6 output HDMI-1 +workspace $ws7 output HDMI-1 +workspace $ws8 output HDMI-1 +workspace $ws9 output HDMI-1 +workspace $ws10 output HDMI-1 + +# Assign gaps to specific workspaces. +workspace $ws2 gaps inner 10 +workspace $ws3 gaps inner 10 + +# Configuration for i3bar. +bar { + output primary # Only output to the primary display. + position bottom # Position at the bottom of the screen. + status_command i3status # Use i3status for the status contents. + tray_output primary # Show tray icons on the primary display. +} + +# Assign clients to specific workspaces. +## To figure out the class name for a client, use xprop and click on the window. +## Example for Standard Notes: xprop | rg '^WM_CLASS' +## > WM_CLASS(STRING) = "standard notes", "Standard Notes" +## The first string is the instance and the second is the class. +assign [class="tauonmb"] $ws2 +assign [class="Standard Notes"] $ws2 +assign [class="Transmission-gtk"] $ws3 +assign [class="KeePassXC"] $ws3 + +# Include the keybinds file. +include keybinds.conf diff --git a/.config/i3/keybinds.conf b/.config/i3/keybinds.conf new file mode 100644 index 0000000..d76f438 --- /dev/null +++ b/.config/i3/keybinds.conf @@ -0,0 +1,59 @@ +# i3 keybinds. +bindsym $mod+f fullscreen toggle +bindsym $mod+r mode "resize" +bindsym $mod+Shift+q kill +bindsym $mod+Shift+c reload +bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'Do you want to exit?' -B 'Yes' 'xfce4-session-logout'" +bindsym $mod+Shift+r restart +## Change focus. +bindsym $mod+Left focus left +bindsym $mod+Down focus down +bindsym $mod+Up focus up +bindsym $mod+Right focus right +## Move the focused window. +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 container. +bindsym $mod+h split h +bindsym $mod+v split v +## Change container layout. +bindsym $mod+s layout stacking +bindsym $mod+z layout tabbed +bindsym $mod+e layout toggle split +## Switch to workspace. +bindsym $mod+ampersand workspace number $ws1 +bindsym $mod+eacute workspace number $ws2 +bindsym $mod+quotedbl workspace number $ws3 +bindsym $mod+apostrophe workspace number $ws4 +bindsym $mod+parenleft workspace number $ws5 +bindsym $mod+section workspace number $ws6 +bindsym $mod+egrave workspace number $ws7 +bindsym $mod+exclam workspace number $ws8 +bindsym $mod+ccedilla workspace number $ws9 +bindsym $mod+agrave workspace number $ws10 +## Move focused container to workspace. +bindsym $mod+Shift+ampersand move container to workspace number $ws1 +bindsym $mod+Shift+eacute move container to workspace number $ws2 +bindsym $mod+Shift+quotedbl move container to workspace number $ws3 +bindsym $mod+Shift+apostrophe move container to workspace number $ws4 +bindsym $mod+Shift+5 move container to workspace number $ws5 +bindsym $mod+Shift+section move container to workspace number $ws6 +bindsym $mod+Shift+egrave move container to workspace number $ws7 +bindsym $mod+Shift+exclam move container to workspace number $ws8 +bindsym $mod+Shift+ccedilla move container to workspace number $ws9 +bindsym $mod+Shift+agrave move container to workspace number $ws10 +## Keybinds inside resize mode. +mode "resize" { + bindsym Right 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 Left resize grow width 10 px or 10 ppt + bindsym Escape mode "default" + bindsym $mod+r mode "default" +} + +# Applications. +bindsym $mod+Return exec "kitty" +bindsym $mod+d exec "rofi -show drun" diff --git a/.config/i3status/config b/.config/i3status/config new file mode 100644 index 0000000..c25ec41 --- /dev/null +++ b/.config/i3status/config @@ -0,0 +1,18 @@ +general { + colors = true + interval = 5 + output_format = "i3bar" +} + +tztime eu_brussels { + format = "%H:%M" + timezone = "Europe/Brussels" +} + +tztime us_central { + format = "%H:%M" + timezone = "US/Central" +} + +order += "tztime us_central" +order += "tztime eu_brussels" diff --git a/.config/rofi/config.rasi b/.config/rofi/config.rasi new file mode 100644 index 0000000..86646fb --- /dev/null +++ b/.config/rofi/config.rasi @@ -0,0 +1,17 @@ +configuration { + font: "Hasklig 12"; + modes: "drun,run"; + terminal: "kitty"; + + filebrowser { + directories-first: true; + sorting-method: "name"; + } + + timeout { + action: "kb-cancel"; + delay: 0; + } +} + +@theme "theme.rasi" diff --git a/.config/rofi/theme.rasi b/.config/rofi/theme.rasi new file mode 100644 index 0000000..5328b91 --- /dev/null +++ b/.config/rofi/theme.rasi @@ -0,0 +1,144 @@ +* { + selected-normal-foreground: rgba ( 249, 249, 249, 100 % ); + foreground: rgba ( 196, 203, 212, 100 % ); + normal-foreground: @foreground; + alternate-normal-background: rgba ( 64, 69, 82, 59 % ); + red: rgba ( 220, 50, 47, 100 % ); + selected-urgent-foreground: rgba ( 249, 249, 249, 100 % ); + blue: rgba ( 38, 139, 210, 100 % ); + urgent-foreground: rgba ( 204, 102, 102, 100 % ); + alternate-urgent-background: rgba ( 75, 81, 96, 90 % ); + active-foreground: rgba ( 101, 172, 255, 100 % ); + lightbg: rgba ( 238, 232, 213, 100 % ); + selected-active-foreground: rgba ( 249, 249, 249, 100 % ); + alternate-active-background: rgba ( 75, 81, 96, 89 % ); + background: rgba ( 45, 48, 59, 95 % ); + alternate-normal-foreground: @foreground; + normal-background: @background; + lightfg: rgba ( 88, 104, 117, 100 % ); + selected-normal-background: rgba ( 64, 132, 214, 100 % ); + border-color: rgba ( 124, 131, 137, 100 % ); + spacing: 2; + separatorcolor: rgba ( 29, 31, 33, 100 % ); + urgent-background: rgba ( 29, 31, 33, 17 % ); + selected-urgent-background: rgba ( 165, 66, 66, 100 % ); + alternate-urgent-foreground: @urgent-foreground; + background-color: rgba ( 0, 0, 0, 0 % ); + alternate-active-foreground: @active-foreground; + active-background: rgba ( 29, 31, 33, 17 % ); + selected-active-background: rgba ( 68, 145, 237, 100 % ); +} +window { + background-color: @background; + border: 1; + padding: 5; +} +mainbox { + border: 0; + padding: 0; +} +message { + border: 2px 0px 0px ; + border-color: @separatorcolor; + padding: 1px ; +} +textbox { + text-color: @foreground; +} +listview { + fixed-height: 0; + border: 2px 0px 0px ; + border-color: @separatorcolor; + spacing: 2px ; + scrollbar: true; + padding: 2px 0px 0px ; +} +element { + border: 0; + padding: 1px ; +} +element-text { + background-color: inherit; + text-color: inherit; +} +element.normal.normal { + background-color: @normal-background; + text-color: @normal-foreground; +} +element.normal.urgent { + background-color: @urgent-background; + text-color: @urgent-foreground; +} +element.normal.active { + background-color: @active-background; + text-color: @active-foreground; +} +element.selected.normal { + background-color: @selected-normal-background; + text-color: @selected-normal-foreground; +} +element.selected.urgent { + background-color: @selected-urgent-background; + text-color: @selected-urgent-foreground; +} +element.selected.active { + background-color: @selected-active-background; + text-color: @selected-active-foreground; +} +element.alternate.normal { + background-color: @alternate-normal-background; + text-color: @alternate-normal-foreground; +} +element.alternate.urgent { + background-color: @alternate-urgent-background; + text-color: @alternate-urgent-foreground; +} +element.alternate.active { + background-color: @alternate-active-background; + text-color: @alternate-active-foreground; +} +scrollbar { + width: 4px ; + border: 0; + handle-color: @normal-foreground; + handle-width: 8px ; + padding: 0; +} +mode-switcher { + border: 2px 0px 0px ; + border-color: @separatorcolor; +} +button { + spacing: 0; + text-color: @normal-foreground; +} +button.selected { + background-color: @selected-normal-background; + text-color: @selected-normal-foreground; +} +inputbar { + spacing: 0; + text-color: @normal-foreground; + padding: 1px ; +} +case-indicator { + spacing: 0; + text-color: @normal-foreground; +} +entry { + spacing: 0; + text-color: @normal-foreground; +} +prompt { + spacing: 0; + text-color: @normal-foreground; +} +inputbar { + children: [ prompt,textbox-prompt-colon,entry,case-indicator ]; +} +textbox-prompt-colon { + expand: false; + str: ":"; + margin: 0px 0.3em 0em 0em ; + text-color: @normal-foreground; +}