change color of icons

This commit is contained in:
Leonardo Eugênio 2022-07-16 02:12:18 -03:00
parent d0d10a9bfe
commit 2805942060
9 changed files with 110 additions and 200 deletions

View file

@ -7,11 +7,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1654113405, "lastModified": 1656169755,
"narHash": "sha256-VpK+0QaWG2JRgB00lw77N9TjkE3ec0iMYIX1TzGpxa4=", "narHash": "sha256-Nlnm4jeQWEGjYrE6hxi/7HYHjBSZ/E0RtjCYifnNsWk=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "ac2287df5a2d6f0a44bbcbd11701dbbf6ec43675", "rev": "4a3d01fb53f52ac83194081272795aa4612c2381",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -23,11 +23,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1654758790, "lastModified": 1657815135,
"narHash": "sha256-bXimktlkjL9s8ldMzMBslxEs80cjZDqrof1g8MbhmQI=", "narHash": "sha256-+5Jby1ayRjtSgsM5IpRNeUgdcIutCKQWR6sypRtd1RE=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "e5556c75ac012ee6e03f39a56c1c51b0f7d658c2", "rev": "c06d5fa9c605d143b15cafdbbb61c7c95388d76e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -36,13 +36,45 @@
"type": "indirect" "type": "indirect"
} }
}, },
"nixpkgs-unstable": {
"locked": {
"lastModified": 1657802959,
"narHash": "sha256-9+JWARSdlL8KiH3ymnKDXltE1vM+/WEJ78F5B1kjXys=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "4a01ca36d6bfc133bc617e661916a81327c9bbc8",
"type": "github"
},
"original": {
"id": "nixpkgs",
"ref": "nixos-unstable",
"type": "indirect"
}
},
"nur": {
"locked": {
"lastModified": 1657945102,
"narHash": "sha256-1zSR0lcc8beoUX8bymst5oeWiB6BGaQAP8fX8y+P1ds=",
"owner": "nix-community",
"repo": "NUR",
"rev": "eda10ab433fa2afd852a702e0fbdba90ff9d0863",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "NUR",
"type": "github"
}
},
"root": { "root": {
"inputs": { "inputs": {
"home-manager": "home-manager", "home-manager": "home-manager",
"nixpkgs": "nixpkgs" "nixpkgs": "nixpkgs",
"nixpkgs-unstable": "nixpkgs-unstable",
"nur": "nur"
} }
} }
}, },
"root": "root", "root": "root",
"version": 7 "version": 7
} }

View file

@ -2,34 +2,54 @@
description = "My system config"; description = "My system config";
inputs = { inputs = {
nixpkgs.url = "nixpkgs/nixos-22.05"; nixpkgs.url = "nixpkgs/nixos-22.05";
nixpkgs-unstable.url = "nixpkgs/nixos-unstable";
home-manager.url = "github:nix-community/home-manager/release-22.05"; home-manager.url = "github:nix-community/home-manager/release-22.05";
home-manager.inputs.nixpkgs.follows = "nixpkgs"; home-manager.inputs.nixpkgs.follows = "nixpkgs";
nur.url = github:nix-community/NUR;
}; };
outputs = { nixpkgs, home-manager, ... }: outputs = { nixpkgs, nixpkgs-unstable, home-manager, nur, ... }:
let let
system = "x86_64-linux"; system = "x86_64-linux";
pkgs = import nixpkgs { pkgs = import nixpkgs {
inherit system; inherit system;
config = { allowUnfree = true; }; config = { allowUnfree = true; };
}; };
overlay-unstable = final: prev: {
unstable = nixpkgs-unstable.legacyPackages.${prev.system};
# use this variant if unfree packages are needed:
# unstable = import nixpkgs-unstable {
# inherit system;
# config.allowUnfree = true;
# };
};
lib = nixpkgs.lib; lib = nixpkgs.lib;
common_modules = [
./system/configuration.nix
# nur.nixosModules.nur
({ config, pkgs, ... }: { nixpkgs.overlays = [ overlay-unstable ]; })
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.lelgenio = import ./user/home.nix;
# Optionally, use home-manager.extraSpecialArgs to pass
# arguments to home.nix
}
];
in { in {
nixosConfigurations = { nixosConfigurations = {
i15 = lib.nixosSystem { i15 = lib.nixosSystem {
inherit system; inherit system;
modules = [ modules = [
./system/configuration.nix
./system/i15-hardware-configuration.nix ./system/i15-hardware-configuration.nix
]; ] ++ common_modules;
}; };
monolith = lib.nixosSystem { monolith = lib.nixosSystem {
inherit system; inherit system;
modules = [ modules = [
./system/configuration.nix
./system/monolith-hardware-configuration.nix ./system/monolith-hardware-configuration.nix
]; ] ++ common_modules;
}; };
}; };
}; };
} }

View file

@ -1,6 +1,4 @@
#!/usr/bin/env bash #!/usr/bin/env bash
HERE="$(dirname "$0")" HERE="$(dirname "$0")"
# sudo nixos-rebuild switch -I nixos-config="$HERE/system/configuration.nix" # sudo nixos-rebuild switch -I nixos-config="$HERE/system/configuration.nix"
sudo nixos-rebuild switch --flake .# sudo nixos-rebuild switch --verbose --flake .#

View file

@ -1,27 +1,24 @@
# Edit this configuration file to define what should be installed on # Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page # your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help). # and in the NixOS manual (accessible by running nixos-help).
{ config, pkgs, ... }: { config, pkgs, ... }:
let let
# bash script to let dbus know about important env variables and # bash script to let dbus know about important env variables and
# propogate them to relevent services run at the end of sway config # propogate them to relevent services run at the end of sway config
# see # see
# https://github.com/emersion/xdg-desktop-portal-wlr/wiki/"It-doesn't-work"-Troubleshooting-Checklist # https://github.com/emersion/xdg-desktop-portal-wlr/wiki/"It-doesn't-work"-Troubleshooting-Checklist
# note: this is pretty much the same as /etc/sway/config.d/nixos.conf but also restarts # note: this is pretty much the same as /etc/sway/config.d/nixos.conf but also restarts
# some user services to make sure they have the correct environment variables # some user services to make sure they have the correct environment variables
dbus-sway-environment = pkgs.writeTextFile { dbus-sway-environment = pkgs.writeTextFile {
name = "dbus-sway-environment"; name = "dbus-sway-environment";
destination = "/bin/dbus-sway-environment"; destination = "/bin/dbus-sway-environment";
executable = true; executable = true;
text = '' text = ''
dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=sway dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=sway
systemctl --user stop pipewire pipewire-media-session xdg-desktop-portal xdg-desktop-portal-wlr systemctl --user stop pipewire pipewire-media-session xdg-desktop-portal xdg-desktop-portal-wlr
systemctl --user start pipewire pipewire-media-session xdg-desktop-portal xdg-desktop-portal-wlr systemctl --user start pipewire pipewire-media-session xdg-desktop-portal xdg-desktop-portal-wlr
''; '';
}; };
# currently, there is some friction between sway and gtk: # currently, there is some friction between sway and gtk:
# https://github.com/swaywm/sway/wiki/GTK-3-settings-on-Wayland # https://github.com/swaywm/sway/wiki/GTK-3-settings-on-Wayland
# the suggested way to set gtk settings is with gsettings # the suggested way to set gtk settings is with gsettings
@ -41,44 +38,34 @@ let
gsettings set $gnome_schema gtk-theme 'Dracula' gsettings set $gnome_schema gtk-theme 'Dracula'
''; '';
}; };
in in
{ {
# Bootloader. # Bootloader.
boot.loader.systemd-boot.enable = true; boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true; boot.loader.efi.canTouchEfiVariables = true;
boot.loader.efi.efiSysMountPoint = "/boot/efi"; boot.loader.efi.efiSysMountPoint = "/boot/efi";
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
# Configure network proxy if necessary # Configure network proxy if necessary
# networking.proxy.default = "http://user:password@proxy:port/"; # networking.proxy.default = "http://user:password@proxy:port/";
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
# Enable networking # Enable networking
networking.networkmanager.enable = true; networking.networkmanager.enable = true;
# Set your time zone. # Set your time zone.
time.timeZone = "America/Sao_Paulo"; time.timeZone = "America/Sao_Paulo";
# Select internationalisation properties. # Select internationalisation properties.
i18n.defaultLocale = "pt_BR.utf8"; i18n.defaultLocale = "pt_BR.utf8";
# Enable the X11 windowing system. # Enable the X11 windowing system.
services.xserver.enable = true; services.xserver.enable = false;
# Enable the GNOME Desktop Environment. # Enable the GNOME Desktop Environment.
# services.xserver.displayManager.gdm.enable = true; # services.xserver.displayManager.gdm.enable = true;
# services.xserver.desktopManager.gnome.enable = true; # services.xserver.desktopManager.gnome.enable = true;
# services.xserver.displayManager.autologin.user = "lelgenio"; # services.xserver.displayManager.autologin.user = "lelgenio";
# Configure keymap in X11 # Configure keymap in X11
services.xserver = { services.xserver = {
layout = "us"; layout = "us";
xkbVariant = "colemak"; xkbVariant = "colemak";
}; };
console.keyMap = "colemak"; console.keyMap = "colemak";
# Enable CUPS to print documents. # Enable CUPS to print documents.
# services.printing.enable = true; # services.printing.enable = true;
services.dbus.enable = true; services.dbus.enable = true;
@ -91,16 +78,13 @@ in
}; };
services.flatpak.enable = true; services.flatpak.enable = true;
virtualisation.docker.enable = true; virtualisation.docker.enable = true;
# Enable sound with pipewire. # Enable sound with pipewire.
sound.enable = true; sound.enable = true;
hardware.pulseaudio.enable = true; hardware.pulseaudio.enable = true;
security.rtkit.enable = true; security.rtkit.enable = true;
services.pipewire.enable = true; services.pipewire.enable = true;
# Enable touchpad support (enabled default in most desktopManager). # Enable touchpad support (enabled default in most desktopManager).
services.xserver.libinput.enable = true; services.xserver.libinput.enable = true;
# Define a user account. Don't forget to set a password with passwd. # Define a user account. Don't forget to set a password with passwd.
users.users.lelgenio = { users.users.lelgenio = {
isNormalUser = true; isNormalUser = true;
@ -108,6 +92,7 @@ in
extraGroups = [ "networkmanager" "wheel" "docker"]; extraGroups = [ "networkmanager" "wheel" "docker"];
shell = pkgs.fish; shell = pkgs.fish;
}; };
services.getty.autologinUser = "lelgenio";
programs.fish.enable = true; programs.fish.enable = true;
services.syncthing = { services.syncthing = {
enable = true; enable = true;
@ -115,29 +100,23 @@ in
dataDir = "/home/lelgenio/"; dataDir = "/home/lelgenio/";
configDir = "/home/lelgenio/.config/syncthing"; configDir = "/home/lelgenio/.config/syncthing";
}; };
# Allow unfree packages # Allow unfree packages
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
# List packages installed in system profile. To search, run: # List packages installed in system profile. To search, run:
# $ nix search wget # $ nix search wget
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
# vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. # vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
# wget # wget
git git
pinentry-curses pinentry-curses
firefox firefox
vscode vscode
micro micro
fd fd
kakoune kakoune
kak-lsp kak-lsp
pavucontrol pavucontrol
tdesktop tdesktop
# recomended by nixwiki # recomended by nixwiki
alacritty # gpu accelerated terminal alacritty # gpu accelerated terminal
sway sway
@ -154,17 +133,13 @@ in
wl-clipboard # wl-copy and wl-paste for copy/paste from stdin / stdout wl-clipboard # wl-copy and wl-paste for copy/paste from stdin / stdout
bemenu # wayland clone of dmenu bemenu # wayland clone of dmenu
mako # notification system developed by swaywm maintainer mako # notification system developed by swaywm maintainer
(orchis-theme.override { tweaks = [ "compact" "solid" ]; }) (orchis-theme.override { tweaks = [ "compact" "solid" ]; })
]; ];
# enable sway window manager # enable sway window manager
programs.sway = { programs.sway = {
enable = true; enable = true;
wrapperFeatures.gtk = true; wrapperFeatures.gtk = true;
}; };
# Some programs need SUID wrappers, can be configured further or are # Some programs need SUID wrappers, can be configured further or are
# started in user sessions. # started in user sessions.
# programs.mtr.enable = true; # programs.mtr.enable = true;
@ -174,25 +149,20 @@ in
enableSSHSupport = true; enableSSHSupport = true;
pinentryFlavor = "curses"; pinentryFlavor = "curses";
}; };
# List services that you want to enable: # List services that you want to enable:
# Enable the OpenSSH daemon. # Enable the OpenSSH daemon.
# services.openssh.enable = true; # services.openssh.enable = true;
# Open ports in the firewall. # Open ports in the firewall.
# networking.firewall.allowedTCPPorts = [ ... ]; # networking.firewall.allowedTCPPorts = [ ... ];
# networking.firewall.allowedUDPPorts = [ ... ]; # networking.firewall.allowedUDPPorts = [ ... ];
# Or disable the firewall altogether. # Or disable the firewall altogether.
networking.firewall.enable = false; networking.firewall.enable = false;
nix = { nix = {
package = pkgs.nixFlakes; # or versioned attributes like nixVersions.nix_2_8 package = pkgs.nixFlakes; # or versioned attributes like nixVersions.nix_2_8
extraOptions = '' extraOptions = ''
experimental-features = nix-command flakes experimental-features = nix-command flakes
''; '';
}; };
# This value determines the NixOS release from which the default # This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions # settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leavecatenate(variables, "bootdev", bootdev) # on your system were taken. Its perfectly fine and recommended to leavecatenate(variables, "bootdev", bootdev)
@ -200,5 +170,4 @@ in
# Before changing this value read the documentation for this option # Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "22.05"; # Did you read the comment? system.stateVersion = "22.05"; # Did you read the comment?
}
}

View file

@ -2,31 +2,25 @@
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }: { config, lib, pkgs, modulesPath, ... }:
{ {
imports = imports =
[ (modulesPath + "/installer/scan/not-detected.nix") [ (modulesPath + "/installer/scan/not-detected.nix")
]; ];
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" "rtsx_usb_sdmmc" ]; boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" "rtsx_usb_sdmmc" ];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ]; boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [ ];
fileSystems."/" = fileSystems."/" =
{ device = "/dev/disk/by-uuid/67af2da1-b4a8-4c32-a7e8-c1d0a8de21ab"; { device = "/dev/disk/by-uuid/67af2da1-b4a8-4c32-a7e8-c1d0a8de21ab";
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/boot/efi" = fileSystems."/boot/efi" =
{ device = "/dev/disk/by-uuid/1428-8899"; { device = "/dev/disk/by-uuid/1428-8899";
fsType = "vfat"; fsType = "vfat";
}; };
swapDevices = swapDevices =
[ { device = "/dev/disk/by-uuid/4d214f1e-63d5-4a1b-94fe-50af27824325"; } [ { device = "/dev/disk/by-uuid/4d214f1e-63d5-4a1b-94fe-50af27824325"; }
]; ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's # (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction # still possible to use this option, but it's recommended to use it in conjunction
@ -34,9 +28,7 @@
networking.useDHCP = lib.mkDefault true; networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp2s0.useDHCP = lib.mkDefault true; # networking.interfaces.enp2s0.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp1s0.useDHCP = lib.mkDefault true; # networking.interfaces.wlp1s0.useDHCP = lib.mkDefault true;
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave"; powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
networking.hostName = "i15"; # Define your hostname. networking.hostName = "i15"; # Define your hostname.
} }

View file

@ -2,42 +2,33 @@
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }: { config, lib, pkgs, modulesPath, ... }:
{ {
imports = imports =
[ (modulesPath + "/installer/scan/not-detected.nix") [ (modulesPath + "/installer/scan/not-detected.nix")
]; ];
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ]; boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ]; boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [ ];
fileSystems."/" = fileSystems."/" =
{ device = "/dev/disk/by-uuid/bea0fbbd-c1a2-4379-8cc5-658507e36032"; { device = "/dev/disk/by-uuid/bea0fbbd-c1a2-4379-8cc5-658507e36032";
fsType = "btrfs"; fsType = "btrfs";
options = [ "subvol=@" ]; options = [ "subvol=@" ];
}; };
boot.initrd.luks.devices."luks-fb41335e-cca7-47e2-a886-24549b8accb8".device = "/dev/disk/by-uuid/fb41335e-cca7-47e2-a886-24549b8accb8"; boot.initrd.luks.devices."luks-fb41335e-cca7-47e2-a886-24549b8accb8".device = "/dev/disk/by-uuid/fb41335e-cca7-47e2-a886-24549b8accb8";
fileSystems."/boot/efi" = fileSystems."/boot/efi" =
{ device = "/dev/disk/by-uuid/E2D7-919A"; { device = "/dev/disk/by-uuid/E2D7-919A";
fsType = "vfat"; fsType = "vfat";
}; };
swapDevices = swapDevices =
[ { device = "/dev/disk/by-uuid/3e5781c7-5e56-4b5d-9720-12b384fad726"; } [ { device = "/dev/disk/by-uuid/3e5781c7-5e56-4b5d-9720-12b384fad726"; }
]; ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's # (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction # still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`. # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true; networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp4s0.useDHCP = lib.mkDefault true; # networking.interfaces.enp4s0.useDHCP = lib.mkDefault true;
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
networking.hostName = "monolith"; # Define your hostname. networking.hostName = "monolith"; # Define your hostname.
} }

View file

@ -1,5 +1,3 @@
#!/usr/bin/env bash #!/usr/bin/env bash
HERE="$(dirname "$0")" HERE="$(dirname "$0")"
home-manager switch -f "$HERE/user/home.nix"
home-manager switch -f "$HERE/user/home.nix"

View file

@ -1,5 +1,5 @@
{ config, pkgs, lib, ... }: { config, pkgs, lib, ... }:
let let
key = { key = {
left = "n"; left = "n";
down = "e"; down = "e";
@ -44,7 +44,6 @@ let
magenta= "#C397D8"; magenta= "#C397D8";
cyan= "#70C0BA"; cyan= "#70C0BA";
white= "#EAEAEA"; white= "#EAEAEA";
#non standard #non standard
orange= "#FF7500"; orange= "#FF7500";
brown= "#A07040"; brown= "#A07040";
@ -52,19 +51,9 @@ let
}; };
}; };
}; };
# TODO: fix # TODO: fix
papirus_red = (pkgs.papirus-icon-theme.overrideAttrs (old: rec { papirus_red = (pkgs.unstable.papirus-icon-theme.override { color = "red"; });
preInstall = ''
for f in {,e}Papirus*/*/folder-red*; do
ln -vsf "$f" "$\{f/-red/}"
done
'';
}));
orchis_theme_compact = (pkgs.orchis-theme.override { tweaks = [ "compact" "solid" ]; }); orchis_theme_compact = (pkgs.orchis-theme.override { tweaks = [ "compact" "solid" ]; });
accent = accents.red; accent = accents.red;
color = themes.dark.color; color = themes.dark.color;
in { in {
@ -72,7 +61,6 @@ in {
# paths it should manage. # paths it should manage.
home.username = "lelgenio"; home.username = "lelgenio";
home.homeDirectory = "/home/lelgenio"; home.homeDirectory = "/home/lelgenio";
# This value determines the Home Manager release that your # This value determines the Home Manager release that your
# configuration is compatible with. This helps avoid breakage # configuration is compatible with. This helps avoid breakage
# when a new Home Manager release introduces backwards # when a new Home Manager release introduces backwards
@ -82,17 +70,15 @@ in {
# the Home Manager release notes for a list of state version # the Home Manager release notes for a list of state version
# changes in each release. # changes in each release.
home.stateVersion = "22.05"; home.stateVersion = "22.05";
# Let Home Manager install and manage itself. # Let Home Manager install and manage itself.
programs.home-manager.enable = true; programs.home-manager.enable = true;
# nixpkgs.config.packageOverrides = pkgs: {
nixpkgs.config.packageOverrides = pkgs: { # nur = import (builtins.fetchTarball "https://github.com/nix-community/NUR/archive/master.tar.gz") {
nur = import (builtins.fetchTarball "https://github.com/nix-community/NUR/archive/master.tar.gz") { # inherit pkgs;
inherit pkgs; # };
}; # };
};
home.packages = with pkgs; [ home.packages = with pkgs; [
helix
kanshi kanshi
alacritty alacritty
exa exa
@ -102,30 +88,26 @@ in {
ffmpeg ffmpeg
imagemagick imagemagick
mpv mpv
xfce.thunar xfce.thunar
liberation_ttf liberation_ttf
hack-font hack-font
font-awesome_5 font-awesome_5
fira-code fira-code
(nerdfonts.override { fonts = [ "FiraCode" "Hack" ]; }) (nerdfonts.override { fonts = [ "FiraCode" "Hack" ]; })
orchis_theme_compact
orchis_theme_compact
papirus_red papirus_red
]; ];
programs.fish.enable = true; programs.fish.enable = true;
programs.firefox = { programs.firefox = {
enable = true; enable = true;
package = pkgs.firefox; package = pkgs.firefox;
extensions = with pkgs.nur.repos.rycee.firefox-addons; [ # extensions = with config.nur.repos.rycee.firefox-addons; [
darkreader # darkreader
ublock-origin # ublock-origin
tree-style-tab # tree-style-tab
sponsorblock # sponsorblock
]; # duckduckgo-privacy-essentials
# ];
profiles = { profiles = {
main = { main = {
isDefault = true; isDefault = true;
@ -135,26 +117,23 @@ in {
"browser.tabs.inTitlebar" = 0; "browser.tabs.inTitlebar" = 0;
}; };
userChrome = '' userChrome = ''
#tabbrowser-tabs { visibility: collapse !important; } #tabbrowser-tabs { visibility: collapse !important; }
''; '';
}; };
}; };
}; };
programs.command-not-found.enable = true; programs.command-not-found.enable = true;
# home.file = { # home.file = {
# ".config/sway/config".source = ./sway; # ".config/sway/config".source = ./sway;
# }; # };
programs.waybar = { programs.waybar = {
enable = true; enable = true;
systemd.enable = true; systemd.enable = true;
systemd.target = "sway-session.target"; systemd.target = "sway-session.target";
settings = [{ settings = [{
layer = "top"; layer = "top";
modules-left = [ modules-left = [
"sway/workspaces" "sway/workspaces"
]; ];
modules-center = [ modules-center = [
"clock" "clock"
@ -170,7 +149,6 @@ in {
padding: 0; padding: 0;
transition-duration:0; transition-duration:0;
} }
window#waybar { window#waybar {
/* background-color: rgba(30,30,30,.9); */ /* background-color: rgba(30,30,30,.9); */
transition-duration: .5s; transition-duration: .5s;
@ -184,22 +162,17 @@ in {
border-bottom: border-bottom:
2px solid ${ color.bg_dark }; 2px solid ${ color.bg_dark };
} }
window#waybar.solo { window#waybar.solo {
background-color: ${ color.bg }; background-color: ${ color.bg };
} }
#workspaces button { #workspaces button {
color: ${ color.bg_light }; color: ${ color.bg_light };
min-width:50px; min-width:50px;
background-color: transparent; background-color: transparent;
border: 3px solid transparent; border: 3px solid transparent;
} }
#workspaces button.focused { #workspaces button.focused {
color: ${ color.txt }; color: ${ color.txt };
/*{%@@ if bar_pos == "top" @@%} /*{%@@ if bar_pos == "top" @@%}
border-top: border-top:
{%@@ else @@%} {%@@ else @@%}
@ -209,17 +182,14 @@ in {
3px solid ${ accent.color }; 3px solid ${ accent.color };
/* border-bottom: 3px solid transparent; */ /* border-bottom: 3px solid transparent; */
} }
/*Window Title*/ /*Window Title*/
#window { #window {
color: ${ color.txt }; color: ${ color.txt };
margin:0 4px; margin:0 4px;
} }
#mode { #mode {
color: ${ accent.color }; color: ${ accent.color };
} }
#mpd, #mpd,
#custom-mpd, #custom-mpd,
#tray, #tray,
@ -244,11 +214,9 @@ in {
color: ${ color.txt }; color: ${ color.txt };
opacity:.7; opacity:.7;
} }
#battery{ #battery{
margin-right:15px; margin-right:15px;
} }
#clock, #clock,
#custom-weather #custom-weather
{ {
@ -261,31 +229,25 @@ in {
margin-top:-1px; margin-top:-1px;
font-size:16px; font-size:16px;
} }
#mpd, #mpd,
#window, #window,
#workspaces #workspaces
{ {
font-weight:normal; font-weight:normal;
} }
#custom-unpushed, #custom-unpushed,
#custom-recording { #custom-recording {
min-width:15px; min-width:15px;
color: #ee4040; color: #ee4040;
} }
#tray { #tray {
padding: 0; padding: 0;
margin: 0; margin: 0;
} }
#language { #language {
font-size: ${ font.size.medium }px; font-size: ${ font.size.medium }px;
color: ${ color.bg_light }; color: ${ color.bg_light };
} }
#custom-sleep { #custom-sleep {
color: ${ accent.color }; color: ${ accent.color };
font-size: ${ font.size.big }px; font-size: ${ font.size.big }px;
@ -293,8 +255,6 @@ in {
} }
''; '';
}; };
wayland.windowManager.sway = { wayland.windowManager.sway = {
enable = true; enable = true;
config = { config = {
@ -305,8 +265,8 @@ in {
smartBorders = "on"; smartBorders = "on";
inner = 5; inner = 5;
}; };
colors = colors =
let let
acc = accent.color; acc = accent.color;
fg_acc = accent.fg; fg_acc = accent.fg;
fg_color = color.txt; fg_color = color.txt;
@ -336,7 +296,7 @@ in {
repeat_delay = "200"; repeat_delay = "200";
}; };
keybindings = keybindings =
let let
mod = "Mod4"; mod = "Mod4";
floating.modifier = "Mod4"; floating.modifier = "Mod4";
menu = "bemenu-run --bottom"; menu = "bemenu-run --bottom";
@ -352,7 +312,6 @@ in {
"${mod}+8" = "workspace number 8"; "${mod}+8" = "workspace number 8";
"${mod}+9" = "workspace number 9"; "${mod}+9" = "workspace number 9";
"${mod}+0" = "workspace number 10"; "${mod}+0" = "workspace number 10";
"${mod}+Shift+1" = "${mod}+Shift+1" =
"move container to workspace number 1"; "move container to workspace number 1";
"${mod}+Shift+2" = "${mod}+Shift+2" =
@ -374,11 +333,11 @@ in {
"${mod}+Shift+0" = "${mod}+Shift+0" =
"move container to workspace number 10"; "move container to workspace number 10";
}; };
prev_next_binds = prev_next_binds =
let let
join_dict_arr = builtins.foldl' (a: v: a//v) {}; join_dict_arr = builtins.foldl' (a: v: a//v) {};
maybe_window = key: maybe_window = key:
if (lib.strings.hasInfix "button" key) if (lib.strings.hasInfix "button" key)
then "--whole-window" then "--whole-window"
else ""; else "";
prev_binds = map (key: prev_binds = map (key:
@ -387,54 +346,45 @@ in {
next_binds = map (key: next_binds = map (key:
{"${maybe_window key} ${mod}+${key}" = "workspace next_on_output";} {"${maybe_window key} ${mod}+${key}" = "workspace next_on_output";}
) [ key.tabR "bracketright" "Next" "button8" "button5" ]; ) [ key.tabR "bracketright" "Next" "button8" "button5" ];
in in
join_dict_arr (prev_binds ++ next_binds); join_dict_arr (prev_binds ++ next_binds);
movement_binds = { movement_binds = {
"${mod}+${key.left}" = "focus left"; "${mod}+${key.left}" = "focus left";
"${mod}+${key.down}" = "focus down"; "${mod}+${key.down}" = "focus down";
"${mod}+${key.up}" = "focus up"; "${mod}+${key.up}" = "focus up";
"${mod}+${key.right}" = "focus right"; "${mod}+${key.right}" = "focus right";
"${mod}+Left" = "focus left"; "${mod}+Left" = "focus left";
"${mod}+Down" = "focus down"; "${mod}+Down" = "focus down";
"${mod}+Up" = "focus up"; "${mod}+Up" = "focus up";
"${mod}+Right" = "focus right"; "${mod}+Right" = "focus right";
"${mod}+Shift+${key.left}" = "move left"; "${mod}+Shift+${key.left}" = "move left";
"${mod}+Shift+${key.down}" = "move down"; "${mod}+Shift+${key.down}" = "move down";
"${mod}+Shift+${key.up}" = "move up"; "${mod}+Shift+${key.up}" = "move up";
"${mod}+Shift+${key.right}" = "move right"; "${mod}+Shift+${key.right}" = "move right";
"${mod}+Shift+Left" = "move left"; "${mod}+Shift+Left" = "move left";
"${mod}+Shift+Down" = "move down"; "${mod}+Shift+Down" = "move down";
"${mod}+Shift+Up" = "move up"; "${mod}+Shift+Up" = "move up";
"${mod}+Shift+Right" = "move right"; "${mod}+Shift+Right" = "move right";
"${mod}+Control+${key.left}" = "resize shrink width"; "${mod}+Control+${key.left}" = "resize shrink width";
"${mod}+Control+${key.down}" = "resize grow height"; "${mod}+Control+${key.down}" = "resize grow height";
"${mod}+Control+${key.up}" = "resize shrink height"; "${mod}+Control+${key.up}" = "resize shrink height";
"${mod}+Control+${key.right}" = "resize grow width"; "${mod}+Control+${key.right}" = "resize grow width";
"${mod}+Control+Left" = "resize shrink width"; "${mod}+Control+Left" = "resize shrink width";
"${mod}+Control+Down" = "resize grow height"; "${mod}+Control+Down" = "resize grow height";
"${mod}+Control+Up" = "resize shrink height"; "${mod}+Control+Up" = "resize shrink height";
"${mod}+Control+Right" = "resize grow width"; "${mod}+Control+Right" = "resize grow width";
"${mod}+mod1+${key.left}" = "focus output left"; "${mod}+mod1+${key.left}" = "focus output left";
"${mod}+mod1+${key.down}" = "focus output down"; "${mod}+mod1+${key.down}" = "focus output down";
"${mod}+mod1+${key.up}" = "focus output up"; "${mod}+mod1+${key.up}" = "focus output up";
"${mod}+mod1+${key.right}" = "focus output right"; "${mod}+mod1+${key.right}" = "focus output right";
"${mod}+mod1+Left" = "focus output left"; "${mod}+mod1+Left" = "focus output left";
"${mod}+mod1+Down" = "focus output down"; "${mod}+mod1+Down" = "focus output down";
"${mod}+mod1+Up" = "focus output up"; "${mod}+mod1+Up" = "focus output up";
"${mod}+mod1+Right" = "focus output right"; "${mod}+mod1+Right" = "focus output right";
"${mod}+mod1+Shift+${key.left}" = "move workspace output left"; "${mod}+mod1+Shift+${key.left}" = "move workspace output left";
"${mod}+mod1+Shift+${key.down}" = "move workspace output down"; "${mod}+mod1+Shift+${key.down}" = "move workspace output down";
"${mod}+mod1+Shift+${key.up}" = "move workspace output up"; "${mod}+mod1+Shift+${key.up}" = "move workspace output up";
"${mod}+mod1+Shift+${key.right}" = "move workspace output right"; "${mod}+mod1+Shift+${key.right}" = "move workspace output right";
"${mod}+mod1+Shift+Left" = "move workspace output left"; "${mod}+mod1+Shift+Left" = "move workspace output left";
"${mod}+mod1+Shift+Down" = "move workspace output down"; "${mod}+mod1+Shift+Down" = "move workspace output down";
"${mod}+mod1+Shift+Up" = "move workspace output up"; "${mod}+mod1+Shift+Up" = "move workspace output up";
@ -452,31 +402,23 @@ in {
XF86AudioPrev = "exec playerctl previous"; XF86AudioPrev = "exec playerctl previous";
}; };
in { in {
"${mod}+Return" = "exec ${terminal}"; "${mod}+Return" = "exec ${terminal}";
"${mod}+x" = "kill"; "${mod}+x" = "kill";
"${mod}+s" = "exec ${menu}"; "${mod}+s" = "exec ${menu}";
"${mod}+b" = "splith"; "${mod}+b" = "splith";
"${mod}+v" = "splitv"; "${mod}+v" = "splitv";
"${mod}+f" = "fullscreen toggle"; "${mod}+f" = "fullscreen toggle";
"${mod}+a" = "focus parent"; "${mod}+a" = "focus parent";
# "${mod}+s" = "layout stacking"; # "${mod}+s" = "layout stacking";
"${mod}+w" = "layout tabbed"; "${mod}+w" = "layout tabbed";
# "${mod}+e" = "layout toggle split"; # "${mod}+e" = "layout toggle split";
"${mod}+Shift+space" = "floating toggle"; "${mod}+Shift+space" = "floating toggle";
"${mod}+space" = "focus mode_toggle"; "${mod}+space" = "focus mode_toggle";
"${mod}+Shift+minus" = "move scratchpad"; "${mod}+Shift+minus" = "move scratchpad";
"${mod}+minus" = "scratchpad show"; "${mod}+minus" = "scratchpad show";
"${mod}+Shift+c" = "reload"; "${mod}+Shift+c" = "reload";
# "${mod}+Shift+e" = # "${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'"; # "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'";
"${mod}+r" = "mode resize"; "${mod}+r" = "mode resize";
} }
// workspace_binds // workspace_binds
@ -488,7 +430,6 @@ in {
terminal = pkgs.alacritty.executable; terminal = pkgs.alacritty.executable;
}; };
}; };
services.kanshi = { services.kanshi = {
enable = true; enable = true;
profiles = { profiles = {
@ -503,8 +444,8 @@ in {
}]; }];
exec = [ exec = [
"xrdb .Xresources" "xrdb .Xresources"
]; ];
}; };
nomad = { nomad = {
outputs = [{ outputs = [{
criteria = "eDP-1"; criteria = "eDP-1";
@ -513,16 +454,14 @@ in {
}]; }];
exec = [ exec = [
"xrdb .Xresources" "xrdb .Xresources"
]; ];
}; };
}; };
}; };
services.kdeconnect = { services.kdeconnect = {
enable = true; enable = true;
indicator = true; indicator = true;
}; };
gtk = { gtk = {
enable = true; enable = true;
theme = { theme = {
@ -531,11 +470,11 @@ in {
}; };
iconTheme = { iconTheme = {
name = "Papirus-Dark"; name = "Papirus-Dark";
package = pkgs.papirus-icon-theme; package = papirus_red;
}; };
cursorTheme = { cursorTheme = {
name = "capitaine-cursors"; name = "capitaine-cursors";
package = papirus_red; package = papirus_red;
}; };
}; };
} }

View file

@ -3,7 +3,6 @@
# Copy this to ~/.config/sway/config and edit it to your liking. # Copy this to ~/.config/sway/config and edit it to your liking.
# #
# Read `man 5 sway` for a complete reference. # Read `man 5 sway` for a complete reference.
### Variables ### Variables
# #
# Logo key. Use Mod1 for Alt. # Logo key. Use Mod1 for Alt.
@ -19,7 +18,6 @@ set $term alacritty
# Note: pass the final command to swaymsg so that the resulting window can be opened # 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. # on the original workspace that the command was run on.
set $menu bemenu-run set $menu bemenu-run
### Output configuration ### Output configuration
# #
# Default wallpaper (more resolutions are available in @datadir@/backgrounds/sway/) # Default wallpaper (more resolutions are available in @datadir@/backgrounds/sway/)
@ -30,7 +28,6 @@ set $menu bemenu-run
# output HDMI-A-1 resolution 1920x1080 position 1920,0 # output HDMI-A-1 resolution 1920x1080 position 1920,0
# #
# You can get the names of your outputs by running: swaymsg -t get_outputs # You can get the names of your outputs by running: swaymsg -t get_outputs
### Idle configuration ### Idle configuration
# #
# Example configuration: # Example configuration:
@ -43,7 +40,6 @@ set $menu bemenu-run
# This will lock your screen after 300 seconds of inactivity, then turn off # This will lock your screen after 300 seconds of inactivity, then turn off
# your displays after another 300 seconds, and turn your screens back on when # your displays after another 300 seconds, and turn your screens back on when
# resumed. It will also lock your screen before your computer goes to sleep. # resumed. It will also lock your screen before your computer goes to sleep.
### Input configuration ### Input configuration
# #
# Example configuration: # Example configuration:
@ -57,36 +53,27 @@ set $menu bemenu-run
# #
# You can get the names of your inputs by running: swaymsg -t get_inputs # You can get the names of your inputs by running: swaymsg -t get_inputs
# Read `man 5 sway-input` for more information about this section. # Read `man 5 sway-input` for more information about this section.
input * { input * {
xkb_layout "us(colemak)" xkb_layout "us(colemak)"
} }
### Key bindings ### Key bindings
# #
# Basics: # Basics:
# #
# Start a terminal # Start a terminal
bindsym $mod+Return exec $term bindsym $mod+Return exec $term
# Kill focused window # Kill focused window
bindsym $mod+Shift+q kill bindsym $mod+Shift+q kill
# Start your launcher # Start your launcher
bindsym $mod+s exec $menu bindsym $mod+s exec $menu
# Drag floating windows by holding down $mod and left mouse button. # Drag floating windows by holding down $mod and left mouse button.
# Resize them with right mouse button + $mod. # Resize them with right mouse button + $mod.
# Despite the name, also works for non-floating windows. # Despite the name, also works for non-floating windows.
# Change normal to inverse to use left mouse button for resizing and right # Change normal to inverse to use left mouse button for resizing and right
# mouse button for dragging. # mouse button for dragging.
floating_modifier $mod normal floating_modifier $mod normal
# Reload the configuration file # Reload the configuration file
bindsym $mod+Shift+c reload bindsym $mod+Shift+c reload
# Exit sway (logs you out of your Wayland session) # Exit sway (logs you out of your Wayland session)
#bindsym $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' #bindsym $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'
# #
@ -102,7 +89,6 @@ input * {
bindsym $mod+Down focus down bindsym $mod+Down focus down
bindsym $mod+Up focus up bindsym $mod+Up focus up
bindsym $mod+Right focus right bindsym $mod+Right focus right
# Move the focused window with the same, but add Shift # Move the focused window with the same, but add Shift
bindsym $mod+Shift+$left move left bindsym $mod+Shift+$left move left
bindsym $mod+Shift+$down move down bindsym $mod+Shift+$down move down
@ -148,21 +134,16 @@ input * {
# respectively. # respectively.
bindsym $mod+b splith bindsym $mod+b splith
bindsym $mod+v splitv bindsym $mod+v splitv
# Switch the current container between different layout styles # Switch the current container between different layout styles
#bindsym $mod+s layout stacking #bindsym $mod+s layout stacking
# bindsym $mod+w layout tabbed # bindsym $mod+w layout tabbed
#bindsym $mod+e layout toggle split #bindsym $mod+e layout toggle split
# Make the current focus fullscreen # Make the current focus fullscreen
bindsym $mod+f fullscreen bindsym $mod+f fullscreen
# Toggle the current focus between tiling and floating mode # Toggle the current focus between tiling and floating mode
bindsym $mod+Shift+space floating toggle bindsym $mod+Shift+space floating toggle
# Swap focus between the tiling area and the floating area # Swap focus between the tiling area and the floating area
bindsym $mod+space focus mode_toggle bindsym $mod+space focus mode_toggle
# Move focus to the parent container # Move focus to the parent container
bindsym $mod+a focus parent bindsym $mod+a focus parent
# #
@ -170,10 +151,8 @@ input * {
# #
# Sway has a "scratchpad", which is a bag of holding for windows. # Sway has a "scratchpad", which is a bag of holding for windows.
# You can send windows there and get them back later. # You can send windows there and get them back later.
# Move the currently focused window to the scratchpad # Move the currently focused window to the scratchpad
bindsym $mod+Shift+minus move scratchpad bindsym $mod+Shift+minus move scratchpad
# Show the next scratchpad window or hide the focused scratchpad window. # Show the next scratchpad window or hide the focused scratchpad window.
# If there are multiple scratchpad windows, this command cycles through them. # If there are multiple scratchpad windows, this command cycles through them.
bindsym $mod+minus scratchpad show bindsym $mod+minus scratchpad show
@ -189,37 +168,29 @@ mode "resize" {
bindsym $down resize grow height 10px bindsym $down resize grow height 10px
bindsym $up resize shrink height 10px bindsym $up resize shrink height 10px
bindsym $right resize grow width 10px bindsym $right resize grow width 10px
# Ditto, with arrow keys # Ditto, with arrow keys
bindsym Left resize shrink width 10px bindsym Left resize shrink width 10px
bindsym Down resize grow height 10px bindsym Down resize grow height 10px
bindsym Up resize shrink height 10px bindsym Up resize shrink height 10px
bindsym Right resize grow width 10px bindsym Right resize grow width 10px
# Return to default mode # Return to default mode
bindsym Return mode "default" bindsym Return mode "default"
bindsym Escape mode "default" bindsym Escape mode "default"
} }
bindsym $mod+r mode "resize" bindsym $mod+r mode "resize"
# #
# Status Bar: # Status Bar:
# #
# Read `man 5 sway-bar` for more information about this section. # Read `man 5 sway-bar` for more information about this section.
bar { bar {
position top position top
# When the status_command prints a new line to stdout, swaybar updates. # When the status_command prints a new line to stdout, swaybar updates.
# The default just shows the current date and time. # The default just shows the current date and time.
status_command while date +'%Y-%m-%d %I:%M:%S %p'; do sleep 1; done status_command while date +'%Y-%m-%d %I:%M:%S %p'; do sleep 1; done
colors { colors {
statusline #ffffff statusline #ffffff
background #323232 background #323232
inactive_workspace #32323200 #32323200 #5c5c5c inactive_workspace #32323200 #32323200 #5c5c5c
} }
} }
include @sysconfdir@/sway/config.d/*
include @sysconfdir@/sway/config.d/*